149 Commits
v0.3 ... v0.5

Author SHA1 Message Date
Conrad
f47aad5c2d Merge branch 'dev' into 'master'
Weekly Update 6

See merge request creyd/intelliphoto!39
2020-01-09 18:45:50 +00:00
Conrad
e1d53a927b Merge branch 'dev-docs' into 'dev'
Weekly Documentation Changes

See merge request creyd/intelliphoto!38
2020-01-09 18:39:41 +00:00
Jan Schuffenhauer
d54e1f3700 Added more Hotkeys + edited ColorPalette
TY all for watching
2020-01-09 17:07:27 +01:00
Jan Schuffenhauer
f96f8aabc4 Update IntelliPhotoGui.cpp 2020-01-09 15:29:42 +01:00
Jan Schuffenhauer
37ba19d792 Menuerweiterung 2020-01-09 14:48:24 +01:00
Jan Schuffenhauer
f1b77a48c8 Merge branch 'dev' of https://gitlab.com/creyd/intelliphoto into dev 2020-01-09 14:03:04 +01:00
Jan Schuffenhauer
081ac68d5f Updatet ui fixed bugs, improved performance, just everything
Autors:
@DerAnonymos
@AshBastian
@Sonaion
2020-01-09 13:59:22 +01:00
Paul Norberger
d9b0d53afd Adding initial todo list 2020-01-09 12:11:57 +01:00
Paul Norberger
711c394f09 Adding tool icons 2020-01-09 12:10:03 +01:00
fb65be47f9 Updated docs 2020-01-09 11:54:53 +01:00
e994bd1009 Merge branch 'dev' into dev-docs 2020-01-09 11:48:10 +01:00
124dfd7931 Uncrustified header files 2020-01-09 11:44:26 +01:00
14e4d50541 Update cppcheck errors 2020-01-09 11:36:10 +01:00
624eb0fde6 Uncrustify all .cpp files 2020-01-09 11:35:36 +01:00
Jan Schuffenhauer
e3b2968f4d Fixed Image ENUMs
ty
2020-01-09 10:45:54 +01:00
Jan Schuffenhauer
ccbe3336a8 Merge branch 'dev-stupidrenderer' into 'dev'
bring the fastrenderer back again...

See merge request creyd/intelliphoto!37
2020-01-09 09:40:14 +00:00
Jan Schuffenhauer
18aec48e4c Merge branch 'dev' into 'dev-stupidrenderer'
# Conflicts:
#   src/Image/IntelliImage.cpp
#   src/Image/IntelliRasterImage.cpp
#   src/Image/IntelliShapedImage.cpp
#   src/Layer/PaintingArea.cpp
2020-01-09 09:39:38 +00:00
Jan Schuffenhauer
67b623a63a bring the fastrenderer back again...
hihihi
2020-01-09 10:35:01 +01:00
Conrad
c319302fc0 Merge branch 'dev-cleanup-2' into 'dev'
Cleanup Merge

See merge request creyd/intelliphoto!36
2020-01-09 09:21:20 +00:00
37e2d62a70 Added cppcheck errors 2020-01-09 10:19:15 +01:00
d4313e29a0 Ran Uncrustify Again 2020-01-09 10:18:28 +01:00
ee64fa6997 Unified ENUM Names 2020-01-09 10:15:02 +01:00
37b8642497 Fixed a bug where the index variable rename went wrong 2020-01-09 10:13:58 +01:00
326f9c8948 Unified Index Variable Name 2020-01-09 10:12:38 +01:00
Bastian Schindler
72b235689e Merge branch 'Helper_Variablen' into 'dev'
Helper variablen

See merge request creyd/intelliphoto!33
2020-01-09 01:45:06 +00:00
AshBastian
6fdda34d68 Gui Endprodukt 2020-01-09 02:43:43 +01:00
Bastian Schindler
a33041a076 Merge branch 'dev-stupidrenderer' into 'Helper_Variablen'
Merge Meine und Jans Arbeit

See merge request creyd/intelliphoto!31
2020-01-09 00:11:04 +00:00
Bastian Schindler
4a6098856f Merge branch 'Helper_Variablen' into 'dev-stupidrenderer'
# Conflicts:
#   src/Image/IntelliImage.h
#   src/IntelliPhoto.pro
#   src/Layer/PaintingArea.h
2020-01-09 00:10:40 +00:00
AshBastian
73500db171 Sorry falscher Merge 2020-01-09 01:07:25 +01:00
Bastian Schindler
e4f094330e Merge branch 'Fix' into 'Helper_Variablen'
Fix

See merge request creyd/intelliphoto!30
2020-01-09 00:03:10 +00:00
AshBastian
46a69024d3 Fix 2020-01-09 00:58:03 +01:00
AshBastian
8b1fd5c3f0 Fixes 2020-01-09 00:52:17 +01:00
Bastian Schindler
d774461b26 Merge branch 'dev-stupidrenderer' into 'Helper_Variablen'
Dev stupidrenderer

See merge request creyd/intelliphoto!28
2020-01-08 23:47:59 +00:00
Bastian Schindler
9af9969c2f Merge branch 'Helper_Variablen' into 'dev-stupidrenderer'
# Conflicts:
#   src/Image/IntelliImage.h
#   src/IntelliPhoto.pro
#   src/Layer/PaintingArea.h
2020-01-08 23:47:37 +00:00
AshBastian
540e23aadf asdjzh fhg fgghdvbsjasjaffg 2020-01-08 21:07:32 +01:00
Jan Schuffenhauer
7ed8e858af Now everything is Indexe 8 😲
Job done.
2020-01-08 19:56:56 +01:00
AshBastian
a99ad09e8c Dummy Gui 2020-01-08 19:55:34 +01:00
Jan Schuffenhauer
78272a5790 now working 100% :D
Fixed a bug where a not activatet tool caused trouble.
2020-01-08 19:40:35 +01:00
Jan Schuffenhauer
c04d8d6815 [W.I.P.] Added a FasterRenderOption
Still completly buggy. and it crashes imediatly after input
2020-01-08 19:01:05 +01:00
AshBastian
42f91ca719 Bilder 2020-01-08 18:26:50 +01:00
AshBastian
c321a181b1 Linenverwaltung 2020-01-08 16:41:56 +01:00
AshBastian
6d4a4e52b5 Destructor 2020-01-08 15:53:51 +01:00
AshBastian
52a72c05c5 ToolSettings 2020-01-08 15:47:16 +01:00
Jan Schuffenhauer
bc718a95d6 changed misstypo 2020-01-08 15:31:09 +01:00
Bastian Schindler
dd55a7158d Merge branch 'PolygonFixes' into 'dev'
Polygon Fixes

See merge request creyd/intelliphoto!27
2020-01-07 16:41:13 +00:00
AshBastian
e540bd64f2 Polygon Fixes
Polygon kann jetzt im Shaped-Image nicht außerhalb des Polygons gestartet werden
2020-01-07 17:39:52 +01:00
Bastian Schindler
011026899c Merge branch 'BugFixes' into 'dev'
Bug fixes

See merge request creyd/intelliphoto!26
2020-01-07 15:05:47 +00:00
AshBastian
c06a4aa87e Absturz behoben
Bei Mausraddrehen kam es zu Absturz, wenn Tool nullptr, weil Zugriff auf Tool
2020-01-07 16:03:54 +01:00
AshBastian
2aa49f1b79 Update IntelliToolPolygon.cpp 2020-01-07 15:35:04 +01:00
AshBastian
28b8d92d72 BugFixes 2020-01-07 15:23:14 +01:00
a832295d7f Added UML Diagram @Jan 2020-01-06 19:36:44 +01:00
8efe6836bf Reworked some method names 2019-12-20 10:42:49 +01:00
86a01eb9ae Merge branch 'dev-variable-refractor' into dev 2019-12-20 10:13:59 +01:00
Mienek
d727591977 Merge branch 'dev-warnings' into 'dev'
fixed warnings

See merge request creyd/intelliphoto!24
2019-12-20 09:06:23 +00:00
d81afbb8ee Refractoring Update 2
- Adjusted variable names to naming conventions
- Concluded header files
2019-12-20 10:05:57 +01:00
Mienek
7a604c805a some fixes
only unused Variable and shadowing left
2019-12-20 10:02:56 +01:00
52292ebfe7 Refractoring Update 1
- Refractored switchColor to slotSwapColor
- Corrected spelling mistake in variable name (weight-->width)
- Unified variable names
2019-12-20 09:50:30 +01:00
ab8590c4fe Refractored fileName to more intuitive filePath 2019-12-20 09:15:02 +01:00
0411c49534 Refractored misspelled variable 2019-12-20 09:03:26 +01:00
Sonaion
279b46bc1d Update IntelliHelper.cpp 2019-12-20 08:56:15 +01:00
Jan Schuffenhauer
73137a6a7b Merge branch 'dev' of https://gitlab.com/creyd/intelliphoto into dev 2019-12-20 08:23:41 +01:00
Jan Schuffenhauer
0045375f6c Fixed bug / changed pi
like the pi could get removed if mucke wants to
2019-12-20 08:21:23 +01:00
Conrad
7fbc4b779a Merge branch 'dev' into 'master'
Weekly Update 5

See merge request creyd/intelliphoto!23
2019-12-19 18:46:10 +00:00
Conrad
6ff32a141a Merge branch 'dev-docs' into 'dev'
Documentation Branch Merge

See merge request creyd/intelliphoto!22
2019-12-19 18:44:06 +00:00
9c95059b93 Updated doxygen docs to latest changes 2019-12-19 19:39:08 +01:00
5073312f7a main.cpp uncrustify 2019-12-19 19:38:18 +01:00
0bcbe13f13 Update main.cpp 2019-12-19 18:38:38 +01:00
a838e3869f Restyled project for uncrustify 2019-12-19 18:27:46 +01:00
c415a53c83 Documented the gui file 2019-12-19 18:16:26 +01:00
8b42603332 Documented PaintingArea 2019-12-19 18:14:13 +01:00
105cff0f63 Added basic documentation for LayerObject Struct 2019-12-19 17:41:31 +01:00
Sonaion
dee229c09f Merge branch 'dev-docs' of https://gitlab.com/creyd/intelliphoto into dev-docs 2019-12-19 17:39:46 +01:00
Sonaion
11617c9f44 Merge branch 'PolygonUpdate' into dev-docs 2019-12-19 17:39:35 +01:00
91fc9a4308 Refraktored another misspelled variable
- hightOffset --> heightOffset
2019-12-19 17:39:24 +01:00
Sonaion
3252ec4404 Earfolding bug 2019-12-19 17:39:10 +01:00
dcd26f76ef Fixed misspelled variable 2019-12-19 17:32:07 +01:00
a2f2e38a06 Changed file extension for config file 2019-12-19 17:30:19 +01:00
Paul Norberger
bf47934bbe Fixed an ugly typo in the readme 2019-12-19 13:36:21 +00:00
Sonaion
cf4f9210dd Merge branch 'dev-docs' of https://gitlab.com/creyd/intelliphoto into dev-docs 2019-12-19 14:33:35 +01:00
Sonaion
9bc45dedfd gui changes for tool anwendung 2019-12-19 14:33:28 +01:00
Paul Norberger
92760ede42 Better introduction as well as line tool docs 2019-12-19 14:33:15 +01:00
Paul Norberger
0fb62f6279 Update manual to version 0.31 2019-12-19 14:08:01 +01:00
Sonaion
71dd9aa7c2 full doc tools 2019-12-19 13:58:46 +01:00
Sonaion
709c976cf0 Merge branch 'dev-docs' of https://gitlab.com/creyd/intelliphoto into dev-docs 2019-12-19 13:54:29 +01:00
Sonaion
ec37be62fc Tool anpassungen 2019-12-19 13:54:17 +01:00
ce32ea9a19 Remade Doxygen Docs 2019-12-19 13:50:50 +01:00
a3c19e9851 Merge branch 'dev' into dev-docs 2019-12-19 12:43:22 +01:00
050be88861 Added Uncrustify Config 2019-12-19 12:39:35 +01:00
Sonaion
07391b93b1 Small changes in grammer 2019-12-19 12:32:07 +01:00
Sonaion
e965162379 Tool COmments update 2019-12-19 12:29:58 +01:00
deranonymos
f24dfe5d33 Adding doc for Plain/Rectangle/Pen Tool, and also some update to Plaintool 2019-12-19 12:28:56 +01:00
Conrad
ef9ba33ade Merge branch 'dev_PolygonTool' into 'dev'
Polygon Tool Development

See merge request creyd/intelliphoto!21
2019-12-19 11:07:11 +00:00
Mienek
1de2f55e85 Documentation 2019-12-19 12:05:31 +01:00
deranonymos
22eb067c7a Added doc for PenTool 2019-12-19 12:04:54 +01:00
2da9e15d36 Minor Code Style Update + Documentation Spelling Fix 2019-12-19 12:03:21 +01:00
Mienek
c6151b1bbf Update IntelliToolPolygon.cpp 2019-12-19 11:47:33 +01:00
Sonaion
9db5304edc Merge branch 'dev-docs' of https://gitlab.com/creyd/intelliphoto into dev-docs 2019-12-19 11:44:19 +01:00
Sonaion
0516b0b921 circle docs 2019-12-19 11:43:52 +01:00
d52dd552f3 Merge branch 'dev' into dev_PolygonTool 2019-12-19 11:31:34 +01:00
4d68b6ab0a Updated docs 2019-12-19 11:29:26 +01:00
Sonaion
559f229b7b start of Tool Commentary 2019-12-19 09:44:48 +01:00
Sonaion
486f1a0815 FloodfillTool and more docs 2019-12-19 09:15:40 +01:00
Sonaion
b4317626cc Merge branch 'dev-tools-seb' into dev-docs 2019-12-18 20:39:24 +01:00
Sonaion
2ceacff4ef Performance Update 2019-12-18 20:37:38 +01:00
Mienek
c9a88909ad FloodFill
ist fertig
2019-12-18 19:41:11 +01:00
Sonaion
181e954cb9 Start of tool commentary 2019-12-18 18:59:35 +01:00
Sonaion
0f829646b9 Documentation of image 2019-12-18 18:19:30 +01:00
Sonaion
978ba61061 updated Image 2019-12-18 17:57:49 +01:00
Sonaion
cb34d8fcbe Merge branch 'dev-tools-seb' into dev-docs 2019-12-18 17:54:48 +01:00
Sonaion
554426eb94 Merge branch 'dev-tools-seb' into dev-docs 2019-12-18 17:51:53 +01:00
Mienek
fa4a8ddad2 nochmal 2019-12-18 17:50:10 +01:00
Mienek
4f808620b8 Halbfertig
weil Mucke es so wollte, keiner weiß warum
2019-12-18 17:49:24 +01:00
Sonaion
30c6d0badd Comments 2019-12-18 17:49:09 +01:00
Sonaion
1d65078df0 Image doc 2019-12-18 17:17:23 +01:00
Sonaion
197ac59998 gitignore update 2019-12-18 16:34:17 +01:00
Sonaion
3eff7d73eb Merge branch 'Polygon_Coverage_API' into dev 2019-12-18 16:32:38 +01:00
Sonaion
4953abc791 Integrated Polygon Test
Use calculate traingles and the isInPolygon with theese triangles, this is done because of performance reasons
2019-12-18 16:32:11 +01:00
AshBastian
89b9e44677 PolygonTool fertig 2019-12-18 15:47:23 +01:00
Paul Norberger
e5e64b984a Documentation update to current status 2019-12-18 15:10:10 +01:00
a2a44cefaa Minor README update 2019-12-18 14:36:59 +01:00
Conrad
38f89f30f9 Merge branch 'hotfix' into 'dev'
Fixed the Linux color picker and system dialog bugs

See merge request creyd/intelliphoto!20
2019-12-18 12:55:56 +00:00
3ad975a297 Changed empty string to nullpointer for file options 2019-12-18 13:48:53 +01:00
Conrad
f268bf584d Merge branch 'dev-rectangle-rename' into 'dev'
Rectangle Refractoring

See merge request creyd/intelliphoto!19
2019-12-18 11:43:07 +00:00
5534522440 Refractoring of "Rechteck" to "rectangle" 2019-12-18 12:42:10 +01:00
Jan Schuffenhauer
675fb0b97c Merge branch 'hotfix' of https://gitlab.com/creyd/intelliphoto into hotfix 2019-12-18 12:31:18 +01:00
d1d3599daa Merged gitignore statements 2019-12-18 13:28:41 +01:00
Jan Schuffenhauer
d193dc3b97 Edited the dialogs to work as intendet on linux and also fixed set second color 2019-12-18 12:31:03 +01:00
Jan Schuffenhauer
56dfdcc533 Update .gitignore 2019-12-18 12:16:37 +01:00
bbc733a8b5 Replaced empty string with nullpointer to dodge warning 2019-12-18 13:11:50 +01:00
325d1925ac Fixed a bug where the File Dialog wouldn't show up correctly on linux 2019-12-18 13:08:21 +01:00
a0f1203fb1 Fixed a bug where the system dialogs wouldn't show up on linux
Thx to @Jan for this contribution and testing
2019-12-18 13:02:25 +01:00
9e4cf9a07f Removed blank lines 2019-12-18 12:44:00 +01:00
a025ab5da5 Removed comment cause it ain't 2019-12-18 11:41:52 +01:00
AshBastian
3525261e1e Polygon Update 2019-12-17 17:45:42 +01:00
7444455094 Added doxygen documentation 2019-12-17 14:11:21 +01:00
Sonaion
21ade76563 Update .gitignore 2019-12-16 19:29:12 +01:00
Sonaion
67a72fe487 Scroll implemented 2019-12-16 19:23:56 +01:00
Sonaion
1c29d564c7 rectangle tool 2019-12-13 13:47:32 +01:00
Sonaion
c712fedbf0 Merge branch 'dev' into RechteckTool 2019-12-13 13:30:12 +01:00
Sonaion
ce331cafa8 testing for tools 2019-12-13 13:24:42 +01:00
Sonaion
4dac816505 Merge branch 'CyrcleTool' into dev 2019-12-13 13:22:15 +01:00
Sonaion
9da13bc002 Update .gitignore 2019-12-13 13:21:27 +01:00
Sonaion
ca9395901b Cryle Tool 2019-12-13 13:20:55 +01:00
Conrad
102238e5ab Merge branch 'dev' into 'master'
Readme Update

See merge request creyd/intelliphoto!18
2019-12-13 08:54:25 +00:00
58603f44dd Moved prezi links to README 2019-12-13 09:29:37 +01:00
fbffc331d4 Code Style Update
- Everything is beautiful now
2019-12-13 09:13:19 +01:00
9f9315c8a4 Moved up src/ one level 2019-12-13 08:57:53 +01:00
610ed9fa7f Create presentation.md 2019-12-13 08:52:38 +01:00
201129a635 Removed old src/ and manual state 2019-12-12 20:38:28 +01:00
754 changed files with 54285 additions and 4178 deletions

3
.gitignore vendored
View File

@@ -1,5 +1,5 @@
# Build folders
src/build-*/
build-*/
# QT Creator Files
*.creator.user*
@@ -13,6 +13,7 @@ CMakeLists.txt.user*
/share/qtcreator/fonts/
/share/qtcreator/generic-highlighter/
/share/qtcreator/qmldesigner/QtProject/
/build-*/
app_version.h
phony.c

View File

@@ -1,281 +0,0 @@
// ---------- IntelliPhotoGui.cpp ----------
#include <QtWidgets>
#include "IntelliPhotoGui.h"
#include "Layer/PaintingArea.h"
// IntelliPhotoGui constructor
IntelliPhotoGui::IntelliPhotoGui()
{
//create Gui elemnts and lay them out
createGui();
// Create actions
createActions();
//create Menus
createMenus();
//set style of the gui
setIntelliStyle();
// Size the app
resize(500, 500);
}
// User tried to close the app
void IntelliPhotoGui::closeEvent(QCloseEvent *event)
{
// If they try to close maybeSave() returns true
// if no changes have been made and the app closes
if (maybeSave()) {
event->accept();
} else {
// If there have been changes ignore the event
event->ignore();
}
}
// Check if the current image has been changed and then
// open a dialog to open a file
void IntelliPhotoGui::open()
{
// Check if changes have been made since last save
// maybeSave() returns true if no changes have been made
if (maybeSave()) {
// Get the file to open from a dialog
// tr sets the window title to Open File
// QDir opens the current dirctory
QString fileName = QFileDialog::getOpenFileName(this,
tr("Open File"), QDir::currentPath());
// If we have a file name load the image and place
// it in the paintingArea
if (!fileName.isEmpty())
paintingArea->openImage(fileName);
}
}
// Called when the user clicks Save As in the menu
void IntelliPhotoGui::save()
{
// A QAction represents the action of the user clicking
QAction *action = qobject_cast<QAction *>(sender());
// Stores the array of bytes of the users data
QByteArray fileFormat = action->data().toByteArray();
// Pass it to be saved
saveFile(fileFormat);
}
// Opens a dialog to change the pen color
void IntelliPhotoGui::penColor()
{
// Store the chosen color from the dialog
QColor newColor = QColorDialog::getColor(paintingArea->penColor());
// If a valid color set it
if (newColor.isValid())
paintingArea->setPenColor(newColor);
}
// Opens a dialog that allows the user to change the pen width
void IntelliPhotoGui::penWidth()
{
// Stores button value
bool ok;
// tr("Painting") is the title
// the next tr is the text to display
// Get the current pen width
// Define the min, max, step and ok button
int newWidth = QInputDialog::getInt(this, tr("Painting"),
tr("Select pen width:"),
paintingArea->penWidth(),
1, 500, 1, &ok);
// Change the pen width
if (ok)
paintingArea->setPenWidth(newWidth);
}
// Open an about dialog
void IntelliPhotoGui::about()
{
// Window title and text to display
QMessageBox::about(this, tr("About Painting"),
tr("<p><b>IntelliPhoto</b> Some nice ass looking software</p>"));
}
// Define menu actions that call functions
void IntelliPhotoGui::createActions()
{
//connect signal and slots of gui element
connect(this->clearButton, SIGNAL(clicked()), paintingArea, SLOT(clearImage()));
// Create the action tied to the menu
openAct = new QAction(tr("&Open..."), this);
// Define the associated shortcut key
openAct->setShortcuts(QKeySequence::Open);
// Tie the action to IntelliPhotoGui::open()
connect(openAct, SIGNAL(triggered()), this, SLOT(open()));
// Get a list of the supported file formats
// QImageWriter is used to write images to files
foreach (QByteArray format, QImageWriter::supportedImageFormats()) {
QString text = tr("%1...").arg(QString(format).toUpper());
// Create an action for each file format
QAction *action = new QAction(text, this);
// Set an action for each file format
action->setData(format);
// When clicked call IntelliPhotoGui::save()
connect(action, SIGNAL(triggered()), this, SLOT(save()));
// Attach each file format option menu item to Save As
saveAsActs.append(action);
}
// Create exit action and tie to IntelliPhotoGui::close()
exitAct = new QAction(tr("E&xit"), this);
exitAct->setShortcuts(QKeySequence::Quit);
connect(exitAct, SIGNAL(triggered()), this, SLOT(close()));
// Create pen color action and tie to IntelliPhotoGui::penColor()
penColorAct = new QAction(tr("&Pen Color..."), this);
connect(penColorAct, SIGNAL(triggered()), this, SLOT(penColor()));
// Create pen width action and tie to IntelliPhotoGui::penWidth()
penWidthAct = new QAction(tr("Pen &Width..."), this);
connect(penWidthAct, SIGNAL(triggered()), this, SLOT(penWidth()));
// Create clear screen action and tie to IntelliPhotoGui::clearImage()
clearScreenAct = new QAction(tr("&Clear Screen"), this);
clearScreenAct->setShortcut(tr("Ctrl+L"));
connect(clearScreenAct, SIGNAL(triggered()),
paintingArea, SLOT(clearImage()));
// Create about action and tie to IntelliPhotoGui::about()
aboutAct = new QAction(tr("&About"), this);
connect(aboutAct, SIGNAL(triggered()), this, SLOT(about()));
// Create about Qt action and tie to IntelliPhotoGui::aboutQt()
aboutQtAct = new QAction(tr("About &Qt"), this);
connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
}
// Create the menubar
void IntelliPhotoGui::createMenus()
{
// Create Save As option and the list of file types
saveAsMenu = new QMenu(tr("&Save As"), this);
foreach (QAction *action, saveAsActs)
saveAsMenu->addAction(action);
// Attach all actions to File
fileMenu = new QMenu(tr("&File"), this);
fileMenu->addAction(openAct);
fileMenu->addMenu(saveAsMenu);
fileMenu->addSeparator();
fileMenu->addAction(exitAct);
// Attach all actions to Options
optionMenu = new QMenu(tr("&Options"), this);
optionMenu->addAction(penColorAct);
optionMenu->addAction(penWidthAct);
optionMenu->addSeparator();
optionMenu->addAction(clearScreenAct);
// Attach all actions to Help
helpMenu = new QMenu(tr("&Help"), this);
helpMenu->addAction(aboutAct);
helpMenu->addAction(aboutQtAct);
// Add menu items to the menubar
menuBar()->addMenu(fileMenu);
menuBar()->addMenu(optionMenu);
menuBar()->addMenu(helpMenu);
}
void IntelliPhotoGui::createGui(){
//create a central widget to work on
centralGuiWidget = new QWidget(this);
setCentralWidget(centralGuiWidget);
//create the grid for the layout
mainLayout = new QGridLayout(centralGuiWidget);
centralGuiWidget->setLayout(mainLayout);
//create Gui elements
clearButton = new QPushButton("Clear");
paintingArea = new PaintingArea();
//set gui elemtns position
mainLayout->addWidget(paintingArea,0,0,10,10);
mainLayout->addWidget(clearButton,0,10,1,1);
}
void IntelliPhotoGui::setIntelliStyle(){
// Set the title
setWindowTitle("IntelliPhoto Prototype");
//set style sheet
this->setStyleSheet("background-color:rgb(64,64,64)");
this->centralGuiWidget->setStyleSheet("color:rgb(255,255,255)");
this->menuBar()->setStyleSheet("color:rgb(255,255,255)");
}
bool IntelliPhotoGui::maybeSave()
{
// Check for changes since last save
if (paintingArea->isModified()) {
QMessageBox::StandardButton ret;
// Painting is the title
// Add text and the buttons
ret = QMessageBox::warning(this, tr("Painting"),
tr("The image has been modified.\n"
"Do you want to save your changes?"),
QMessageBox::Save | QMessageBox::Discard
| QMessageBox::Cancel);
// If save button clicked call for file to be saved
if (ret == QMessageBox::Save) {
return saveFile("png");
// If cancel do nothing
} else if (ret == QMessageBox::Cancel) {
return false;
}
}
return true;
}
bool IntelliPhotoGui::saveFile(const QByteArray &fileFormat)
{
// Define path, name and default file type
QString initialPath = QDir::currentPath() + "/untitled." + fileFormat;
// Get selected file from dialog
// Add the proper file formats and extensions
QString fileName = QFileDialog::getSaveFileName(this, tr("Save As"),
initialPath,
tr("%1 Files (*.%2);;All Files (*)")
.arg(QString::fromLatin1(fileFormat.toUpper()))
.arg(QString::fromLatin1(fileFormat)));
// If no file do nothing
if (fileName.isEmpty()) {
return false;
} else {
// Call for the file to be saved
return paintingArea->saveImage(fileName, fileFormat.constData());
}
}

View File

@@ -1,77 +0,0 @@
#ifndef IntelliPhotoGui_H
#define IntelliPhotoGui_H
#include <QList>
#include <QMainWindow>
#include<QGridLayout>
#include<QPushButton>
// PaintingArea used to paint the image
class PaintingArea;
class IntelliPhotoGui : public QMainWindow
{
// Declares our class as a QObject which is the base class
// for all Qt objects
// QObjects handle events
Q_OBJECT
public:
IntelliPhotoGui();
protected:
// Function used to close an event
void closeEvent(QCloseEvent *event) override;
// The events that can be triggered
private slots:
void open();
void save();
void penColor();
void penWidth();
void about();
private:
// Will tie user actions to functions
void createActions();
void createMenus();
//setup GUI elements
void createGui();
//set style of the GUI
void setIntelliStyle();
// Will check if changes have occurred since last save
bool maybeSave();
// Opens the Save dialog and saves
bool saveFile(const QByteArray &fileFormat);
// What we'll draw on
PaintingArea *paintingArea;
// The menu widgets
QMenu *saveAsMenu;
QMenu *fileMenu;
QMenu *optionMenu;
QMenu *helpMenu;
// All the actions that can occur
QAction *openAct;
// Actions tied to specific file formats
QList<QAction *> saveAsActs;
QAction *exitAct;
QAction *penColorAct;
QAction *penWidthAct;
QAction *clearScreenAct;
QAction *aboutAct;
QAction *aboutQtAct;
//main GUI elements
QWidget* centralGuiWidget;
QGridLayout *mainLayout;
QPushButton *clearButton;
};
#endif

View File

@@ -1,79 +0,0 @@
#include"Image/IntelliImage.h"
#include<QSize>
#include<QPainter>
IntelliImage::IntelliImage(int weight, int height)
:imageData(QSize(weight, height), QImage::Format_ARGB32){
imageData.fill(QColor(255,255,255,255));
}
IntelliImage::~IntelliImage(){
}
bool IntelliImage::loadImage(const QString &fileName){
// Holds the image
QImage loadedImage;
// If the image wasn't loaded leave this function
if (!loadedImage.load(fileName))
return false;
loadedImage =loadedImage.scaled(imageData.size(),Qt::IgnoreAspectRatio);
imageData= loadedImage.convertToFormat(QImage::Format_ARGB32);
return true;
}
void IntelliImage::resizeImage(QImage *image, const QSize &newSize){
// Check if we need to redraw the image
if (image->size() == newSize)
return;
// Create a new image to display and fill it with white
QImage newImage(newSize, QImage::Format_ARGB32);
newImage.fill(qRgb(255, 255, 255));
// Draw the image
QPainter painter(&newImage);
painter.drawImage(QPoint(0, 0), *image);
*image = newImage;
}
void IntelliImage::drawPixel(const QPoint &p1, const QColor& color){
// Used to draw on the widget
QPainter painter(&imageData);
// Set the current settings for the pen
painter.setPen(QPen(color, 1, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
// Draw a line from the last registered point to the current
painter.drawPoint(p1);
// Call to update the rectangular space where we drew
//update(QRect(p1, p2));
}
void IntelliImage::drawLine(const QPoint &p1, const QPoint& p2, const QColor& color, const int& penWidth){
// Used to draw on the widget
QPainter painter(&imageData);
// Set the current settings for the pen
painter.setPen(QPen(color, penWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
// Draw a line from the last registered point to the current
painter.drawLine(p1, p2);
}
void IntelliImage::floodFill(const QColor& color){
imageData.fill(color);
}
int IntelliImage::x(){
return imageData.size().width();
}
int IntelliImage::y(){
return imageData.size().height();
}

View File

@@ -1,46 +0,0 @@
#ifndef INTELLIIMAGE_H
#define INTELLIIMAGE_H
#include<QImage>
#include<QPoint>
#include<QColor>
#include<QSize>
#include<QWidget>
#include<vector>
enum class ImageType{
Raster_Image,
Shaped_Image
};
class IntelliImage{
protected:
void resizeImage(QImage *image, const QSize &newSize);
QImage imageData;
public:
IntelliImage(int weight, int height);
virtual ~IntelliImage() = 0;
//start on top left
virtual void drawPixel(const QPoint &p1, const QColor& color);
virtual void drawLine(const QPoint &p1, const QPoint& p2, const QColor& color, const int& penWidth);
virtual void floodFill(const QColor& color);
//returns the filtered output
virtual QImage getDisplayable(const QSize& displaySize)=0;
virtual QImage getDisplayable()=0;
//returns the filtered output
//sets the data for the visible image
virtual void setPolygon(const std::vector<QPoint>& polygonData)=0;
virtual bool loadImage(const QString &fileName);
int x();
int y();
};
#endif

View File

@@ -1,27 +0,0 @@
#include"Image/IntelliRasterImage.h"
#include<QPainter>
#include<QRect>
#include<QDebug>
IntelliRasterImage::IntelliRasterImage(int weight, int height)
:IntelliImage(weight, height){
}
IntelliRasterImage::~IntelliRasterImage(){
}
QImage IntelliRasterImage::getDisplayable(){
return getDisplayable(imageData.size());
}
QImage IntelliRasterImage::getDisplayable(const QSize& displaySize){
QImage copy = imageData;
return copy.scaled(displaySize,Qt::IgnoreAspectRatio);
}
void IntelliRasterImage::setPolygon(const std::vector<QPoint>& polygonData){
qDebug() << "Raster Image has no polygon data " << polygonData.size() <<"\n";
return;
}

View File

@@ -1,21 +0,0 @@
#ifndef INTELLIRASTER_H
#define INTELLIRASTER_H
#include"Image/IntelliImage.h"
class IntelliRasterImage : public IntelliImage{
public:
IntelliRasterImage(int weight, int height);
virtual ~IntelliRasterImage() override;
//returns the filtered output
virtual QImage getDisplayable(const QSize& displaySize) override;
virtual QImage getDisplayable() override;
//sets the data for the visible image
virtual void setPolygon(const std::vector<QPoint>& polygonData) override;
};
#endif

View File

@@ -1,53 +0,0 @@
#include"Image/IntelliShapedImage.h"
#include"IntelliHelper/IntelliHelper.h"
#include<QPainter>
#include<QRect>
#include<QDebug>
IntelliShapedImage::IntelliShapedImage(int weight, int height)
:IntelliImage(weight, height){
}
IntelliShapedImage::~IntelliShapedImage(){
}
QImage IntelliShapedImage::getDisplayable(){
return getDisplayable(imageData.size());
}
QImage IntelliShapedImage::getDisplayable(const QSize& displaySize){
QImage copy = imageData;
QPoint startPoint;
QPoint extrem(0,copy.width()+1);
for(int y = 0; y<copy.height(); y++){
extrem.setY(y);
startPoint.setY(y);
//traverse through x dircetion
for(int x=0; x<copy.width(); x++){
startPoint.setX(x);
//traverse all edges
int cutNumberX = 0;
for(size_t i=0; i<polygonData.size()-1; i++){
QPoint& start = polygonData[i];
QPoint& end = polygonData[i+1];
cutNumberX+=IntelliHelper::hasIntersection(startPoint, extrem, start, end);
}
//check if zhe cutNumber is Even -> not in Polygon
if(!(cutNumberX&1)){
QColor tmpColor(0,0,0);
tmpColor.setAlpha(0);
copy.setPixelColor(startPoint,tmpColor);
}
}
}
return copy.scaled(displaySize,Qt::IgnoreAspectRatio);
}
void IntelliShapedImage::setPolygon(const std::vector<QPoint>& polygonData){
for(auto element:polygonData){
this->polygonData.push_back(QPoint(element.x(), element.y()));
}
return;
}

View File

@@ -1,22 +0,0 @@
#ifndef INTELLISHAPE_H
#define INTELLISHAPE_H
#include"Image/IntelliImage.h"
class IntelliShapedImage : public IntelliImage{
protected:
std::vector<QPoint> polygonData;
public:
IntelliShapedImage(int weight, int height);
virtual ~IntelliShapedImage() override;
//returns the filtered output
virtual QImage getDisplayable(const QSize& displaySize) override;
virtual QImage getDisplayable() override;
//sets the data for the visible image
virtual void setPolygon(const std::vector<QPoint>& polygonData) override;
};
#endif

View File

@@ -1,39 +0,0 @@
#include"IntelliHelper.h"
#include<algorithm>
int IntelliHelper::orientation(QPoint& p, QPoint& q, QPoint& r){
int value = (q.y()-p.y())*(r.x()-q.x())-
(q.x()-p.x())*(r.y()-q.y());
if(value==0) return 0;
return (value>0)?1:2;
}
bool IntelliHelper::onSegment(QPoint& p1, QPoint& q, QPoint& p2){
return (q.x() >= std::min(p1.x(),p2.x()) && q.x() <= std::max(p1.x(), p2.x()) &&
q.y() >= std::min(p1.y(),p2.y()) && q.y() <= std::max(p1.y(), p2.y()));
}
bool IntelliHelper::hasIntersection(QPoint& p1, QPoint& q1, QPoint& p2, QPoint& q2){
int o1 = IntelliHelper::orientation(p1,q1,p2);
int o2 = IntelliHelper::orientation(p1,q1,q2);
int o3 = IntelliHelper::orientation(p2,q2,p1);
int o4 = IntelliHelper::orientation(p2,q2,q1);
// General case
if (o1 != o2 && o3 != o4)
return true;
// p1, q1 and p2 are colinear and p2 lies on segment p1q1
if (o1 == 0 && onSegment(p1, p2, q1)) return true;
// p1, q1 and q2 are colinear and q2 lies on segment p1q1
if (o2 == 0 && onSegment(p1, q2, q1)) return true;
// p2, q2 and p1 are colinear and p1 lies on segment p2q2
if (o3 == 0 && onSegment(p2, p1, q2)) return true;
// p2, q2 and q1 are colinear and q1 lies on segment p2q2
if (o4 == 0 && onSegment(p2, q1, q2)) return true;
return false; // Doesn't fall in any of the above cases
}

View File

@@ -1,22 +0,0 @@
#ifndef INTELLIHELPER_H
#define INTELLIHELPER_H
#include<QPoint>
class IntelliHelper{
public:
//checks for orientation:
// 0 - colinear
// 1 - clockwise
// 2 - counter clockwise
static int orientation(QPoint& p1, QPoint& p2, QPoint& p3);
//checks if q is on segment p1-p2
static bool onSegment(QPoint& p1, QPoint& q, QPoint& p2);
//cheks if p1-q1 intersects with p2-q2
static bool hasIntersection(QPoint& p1, QPoint& q1, QPoint& p2, QPoint& q2);
};
#endif

View File

@@ -1,337 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.10.2, 2019-11-20T18:43:58. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{87de10b7-9dd6-4379-8674-fd04613e186e}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="int">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap">
<valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey">
<value type="QString">-fno-delayed-template-parsing</value>
</valuelist>
<value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.12.5 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.12.5 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5125.win64_mingw73_kit</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/Jonas/Documents/QML/build-Scribble-Desktop_Qt_5_12_5_MinGW_64_bit-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Erstellen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Bereinigen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/Jonas/Documents/QML/build-Scribble-Desktop_Qt_5_12_5_MinGW_64_bit-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Erstellen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Bereinigen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/Jonas/Documents/QML/build-Scribble-Desktop_Qt_5_12_5_MinGW_64_bit-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Erstellen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Bereinigen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deployment</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deployment-Konfiguration</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="QString" key="Analyzer.Perf.CallgraphMode">dwarf</value>
<valuelist type="QVariantList" key="Analyzer.Perf.Events">
<value type="QString">cpu-cycles</value>
</valuelist>
<valuelist type="QVariantList" key="Analyzer.Perf.ExtraArguments"/>
<value type="int" key="Analyzer.Perf.Frequency">250</value>
<value type="QString" key="Analyzer.Perf.SampleMode">-F</value>
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Perf.StackSize">4096</value>
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="QString" key="Analyzer.Valgrind.KCachegrindExecutable">kcachegrind</value>
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
<value type="int">0</value>
<value type="int">1</value>
<value type="int">2</value>
<value type="int">3</value>
<value type="int">4</value>
<value type="int">5</value>
<value type="int">6</value>
<value type="int">7</value>
<value type="int">8</value>
<value type="int">9</value>
<value type="int">10</value>
<value type="int">11</value>
<value type="int">12</value>
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Scribble</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:C:/Users/Jonas/Documents/QML/Scribble/Scribble.pro</value>
<value type="QString" key="RunConfiguration.Arguments"></value>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory"></value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">C:/Users/Jonas/Documents/QML/build-Scribble-Desktop_Qt_5_12_5_MinGW_64_bit-Debug</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="int">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">22</value>
</data>
<data>
<variable>Version</variable>
<value type="int">22</value>
</data>
</qtcreator>

View File

@@ -1,47 +0,0 @@
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++11
# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
GUI/IntelliPhotoGui.cpp \
Image/IntelliImage.cpp \
Image/IntelliRasterImage.cpp \
Image/IntelliShapedImage.cpp \
IntelliHelper/IntelliHelper.cpp \
Layer/PaintingArea.cpp \
main.cpp
HEADERS += \
GUI/IntelliPhotoGui.h \
Image/IntelliImage.h \
Image/IntelliRasterImage.h \
Image/IntelliShapedImage.h \
IntelliHelper/IntelliHelper.h \
Layer/PaintingArea.h
FORMS += \
widget.ui
QMAKE_CXXFLAGS += -fopenmp
QMAKE_LFLAGS += -fopenmp
RC_ICONS = icon.ico
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

View File

@@ -1,342 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.10.2, 2019-11-28T16:37:27. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{426164d9-3771-4235-8f83-cb0b49423ffc}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="int">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap">
<valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey">
<value type="QString">-fno-delayed-template-parsing</value>
</valuelist>
<value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
<valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.12.5 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.12.5 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5125.win64_mingw73_kit</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/jonas/OneDrive/Documents/GitHub/intelliphoto/IntelliPhoto/build-IntelliPhoto-Desktop_Qt_5_12_5_MinGW_64_bit-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Erstellen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Bereinigen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/jonas/OneDrive/Documents/GitHub/intelliphoto/IntelliPhoto/build-IntelliPhoto-Desktop_Qt_5_12_5_MinGW_64_bit-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Erstellen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Bereinigen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/jonas/OneDrive/Documents/GitHub/intelliphoto/IntelliPhoto/build-IntelliPhoto-Desktop_Qt_5_12_5_MinGW_64_bit-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Erstellen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Bereinigen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deployment</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deployment-Konfiguration</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="QString" key="Analyzer.Perf.CallgraphMode">dwarf</value>
<valuelist type="QVariantList" key="Analyzer.Perf.Events">
<value type="QString">cpu-cycles</value>
</valuelist>
<valuelist type="QVariantList" key="Analyzer.Perf.ExtraArguments"/>
<value type="int" key="Analyzer.Perf.Frequency">250</value>
<value type="QString" key="Analyzer.Perf.SampleMode">-F</value>
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Perf.StackSize">4096</value>
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="QString" key="Analyzer.Valgrind.KCachegrindExecutable">kcachegrind</value>
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
<value type="int">0</value>
<value type="int">1</value>
<value type="int">2</value>
<value type="int">3</value>
<value type="int">4</value>
<value type="int">5</value>
<value type="int">6</value>
<value type="int">7</value>
<value type="int">8</value>
<value type="int">9</value>
<value type="int">10</value>
<value type="int">11</value>
<value type="int">12</value>
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">IntelliPhoto</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:C:/Users/jonas/OneDrive/Documents/GitHub/intelliphoto/IntelliPhoto/Painting/IntelliPhoto.pro</value>
<value type="QString" key="RunConfiguration.Arguments"></value>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory"></value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">C:/Users/jonas/OneDrive/Documents/GitHub/intelliphoto/IntelliPhoto/build-IntelliPhoto-Desktop_Qt_5_12_5_MinGW_64_bit-Release</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="int">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">22</value>
</data>
<data>
<variable>Version</variable>
<value type="int">22</value>
</data>
</qtcreator>

View File

@@ -1,337 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.10.2, 2019-11-23T20:59:26. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{39e188fc-db7d-4dae-b6b7-f93e7e62e580}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="int">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap">
<valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey">
<value type="QString">-fno-delayed-template-parsing</value>
</valuelist>
<value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.12.6 MinGW 32-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.12.6 MinGW 32-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5126.win32_mingw73_kit</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:/Users/pauln/Documents/intelliphoto/IntelliPhoto/build-Scribble-Desktop_Qt_5_12_6_MinGW_32_bit-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Erstellen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Bereinigen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:/Users/pauln/Documents/intelliphoto/IntelliPhoto/build-Scribble-Desktop_Qt_5_12_6_MinGW_32_bit-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Erstellen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Bereinigen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:/Users/pauln/Documents/intelliphoto/IntelliPhoto/build-Scribble-Desktop_Qt_5_12_6_MinGW_32_bit-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Erstellen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Bereinigen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deployment</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deployment-Konfiguration</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="QString" key="Analyzer.Perf.CallgraphMode">dwarf</value>
<valuelist type="QVariantList" key="Analyzer.Perf.Events">
<value type="QString">cpu-cycles</value>
</valuelist>
<valuelist type="QVariantList" key="Analyzer.Perf.ExtraArguments"/>
<value type="int" key="Analyzer.Perf.Frequency">250</value>
<value type="QString" key="Analyzer.Perf.SampleMode">-F</value>
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Perf.StackSize">4096</value>
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="QString" key="Analyzer.Valgrind.KCachegrindExecutable">kcachegrind</value>
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
<value type="int">0</value>
<value type="int">1</value>
<value type="int">2</value>
<value type="int">3</value>
<value type="int">4</value>
<value type="int">5</value>
<value type="int">6</value>
<value type="int">7</value>
<value type="int">8</value>
<value type="int">9</value>
<value type="int">10</value>
<value type="int">11</value>
<value type="int">12</value>
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Scribble</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:E:/Users/pauln/Documents/intelliphoto/IntelliPhoto/Scribble/Scribble.pro</value>
<value type="QString" key="RunConfiguration.Arguments"></value>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory"></value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/Users/pauln/Documents/intelliphoto/IntelliPhoto/build-Scribble-Desktop_Qt_5_12_6_MinGW_32_bit-Debug</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="int">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">22</value>
</data>
<data>
<variable>Version</variable>
<value type="int">22</value>
</data>
</qtcreator>

View File

@@ -1,164 +0,0 @@
// ---------- PaintingArea.cpp ----------
#include <QtWidgets>
#include<QRect>
#include "PaintingArea.h"
#include "Image/IntelliRasterImage.h"
#include "Image/IntelliShapedImage.h"
#include<vector>
#include<QPoint>
PaintingArea::PaintingArea(QWidget *parent)
: QWidget(parent)
{
//create standart image
this->image = new IntelliRasterImage(400,400);
std::vector<QPoint> poly;
poly.push_back(QPoint(200,0));
poly.push_back(QPoint(400,300));
poly.push_back(QPoint(0,300));
poly.push_back(QPoint(200,0));
image->setPolygon(poly);
this->setUp();
}
void PaintingArea::setUp(){
// Roots the widget to the top left even if resized
setAttribute(Qt::WA_StaticContents);
// Set defaults for the monitored variables
scribbling = false;
myPenWidth = 1;
myPenColor = Qt::blue;
}
PaintingArea::PaintingArea(int width, int height, ImageType type, QWidget *parent)
: QWidget(parent){
if(type==ImageType::Raster_Image){
this->image = new IntelliRasterImage(width, height);
}else if(type==ImageType::Shaped_Image){
this->image = new IntelliShapedImage(width, height);
}else{
qDebug() << "No valid Image type error";
return;
}
this->setUp();
}
// Used to load the image and place it in the widget
bool PaintingArea::openImage(const QString &fileName)
{
bool open = image->loadImage(fileName);
update();
return open;
}
// Save the current image
bool PaintingArea::saveImage(const QString &fileName, const char *fileFormat)
{
// Created to hold the image
QImage visibleImage = image->getDisplayable();
if (visibleImage.save(fileName, fileFormat)) {
return true;
} else {
return false;
}
}
// Used to change the pen color
void PaintingArea::setPenColor(const QColor &newColor)
{
myPenColor = newColor;
}
// Used to change the pen width
void PaintingArea::setPenWidth(int newWidth)
{
myPenWidth = newWidth;
}
// Color the image area with white
void PaintingArea::clearImage()
{
image->floodFill(qRgb(255, 255, 255));
update();
}
// If a mouse button is pressed check if it was the
// left button and if so store the current position
// Set that we are currently drawing
void PaintingArea::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton) {
int x = event->x()*(float)image->x()/(float)size().width();
int y = event->y()*(float)image->y()/(float)size().height();
lastPoint=QPoint(x,y);
scribbling = true;
}
}
// When the mouse moves if the left button is clicked
// we call the drawline function which draws a line
// from the last position to the current
void PaintingArea::mouseMoveEvent(QMouseEvent *event)
{
if ((event->buttons() & Qt::LeftButton) && scribbling){
int x = event->x()*(float)image->x()/(float)size().width();
int y = event->y()*(float)image->y()/(float)size().height();
drawLineTo(QPoint(x,y));
update();
}
}
// If the button is released we set variables to stop drawing
void PaintingArea::mouseReleaseEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton && scribbling) {
int x = event->x()*(float)image->x()/(float)size().width();
int y = event->y()*(float)image->y()/(float)size().height();
drawLineTo(QPoint(x,y));
update();
scribbling = false;
}
}
// QPainter provides functions to draw on the widget
// The QPaintEvent is sent to widgets that need to
// update themselves
void PaintingArea::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
QRect dirtyRec = event->rect();
painter.drawImage(dirtyRec, image->getDisplayable(dirtyRec.size()), dirtyRec);
update();
}
// Resize the image to slightly larger then the main window
// to cut down on the need to resize the image
void PaintingArea::resizeEvent(QResizeEvent *event)
{
QPainter painter(this);
QRect dirtyRec(QPoint(0,0), event->size());
painter.drawImage(dirtyRec, image->getDisplayable(event->size()), dirtyRec);
update();
//QWidget::resizeEvent(event);
}
void PaintingArea::drawLineTo(const QPoint &endPoint)
{
// Used to draw on the widget
image->drawLine(lastPoint, endPoint,myPenColor, myPenWidth);
lastPoint = endPoint;
update();
}
void PaintingArea::resizeImage(QImage *image_res, const QSize &newSize){
image_res->scaled(newSize,Qt::IgnoreAspectRatio);
}

View File

@@ -1,77 +0,0 @@
#ifndef PaintingArea_H
#define PaintingArea_H
#include <QColor>
#include <QImage>
#include"Image/IntelliImage.h"
#include <QPoint>
#include <QWidget>
class PaintingArea : public QWidget
{
// Declares our class as a QObject which is the base class
// for all Qt objects
// QObjects handle events
Q_OBJECT
public:
//create raster image 400*200
PaintingArea(QWidget *parent = nullptr);
PaintingArea(int width, int height, ImageType type, QWidget *parent = nullptr);
// Handles all events
bool openImage(const QString &fileName);
bool saveImage(const QString &fileName, const char *fileFormat);
void setPenColor(const QColor &newColor);
void setPenWidth(int newWidth);
// Has the image been modified since last save
bool isModified() const { return modified; }
QColor penColor() const { return myPenColor; }
int penWidth() const { return myPenWidth; }
public slots:
// Events to handle
void clearImage();
//void setUp helper for konstruktor
void setUp();
protected:
void mousePressEvent(QMouseEvent *event) override;
void mouseMoveEvent(QMouseEvent *event) override;
void mouseReleaseEvent(QMouseEvent *event) override;
// Updates the painting area where we are painting
void paintEvent(QPaintEvent *event) override;
// Makes sure the area we are drawing on remains
// as large as the widget
void resizeEvent(QResizeEvent *event) override;
private:
void drawLineTo(const QPoint &endPoint);
void resizeImage(QImage *image_res, const QSize &newSize);
// Will be marked true or false depending on if
// we have saved after a change
bool modified=false;
// Marked true or false depending on if the user
// is drawing
bool scribbling;
// Holds the current pen width & color
int myPenWidth;
QColor myPenColor;
// Stores the image being drawn
IntelliImage* image;
// Stores the location at the current mouse event
QPoint lastPoint;
};
#endif

View File

@@ -1,337 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.10.2, 2019-11-21T13:26:30. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{426164d9-3771-4235-8f83-cb0b49423ffc}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="int">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap">
<valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey">
<value type="QString">-fno-delayed-template-parsing</value>
</valuelist>
<value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.12.5 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.12.5 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5125.win64_mingw73_kit</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/jonas/OneDrive/Desktop/build-Scribble-Desktop_Qt_5_12_5_MinGW_64_bit-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Erstellen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Bereinigen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/jonas/OneDrive/Desktop/build-Scribble-Desktop_Qt_5_12_5_MinGW_64_bit-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Erstellen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Bereinigen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/jonas/OneDrive/Desktop/build-Scribble-Desktop_Qt_5_12_5_MinGW_64_bit-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Erstellen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Bereinigen</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deployment</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deployment-Konfiguration</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="QString" key="Analyzer.Perf.CallgraphMode">dwarf</value>
<valuelist type="QVariantList" key="Analyzer.Perf.Events">
<value type="QString">cpu-cycles</value>
</valuelist>
<valuelist type="QVariantList" key="Analyzer.Perf.ExtraArguments"/>
<value type="int" key="Analyzer.Perf.Frequency">250</value>
<value type="QString" key="Analyzer.Perf.SampleMode">-F</value>
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Perf.StackSize">4096</value>
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="QString" key="Analyzer.Valgrind.KCachegrindExecutable">kcachegrind</value>
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
<value type="int">0</value>
<value type="int">1</value>
<value type="int">2</value>
<value type="int">3</value>
<value type="int">4</value>
<value type="int">5</value>
<value type="int">6</value>
<value type="int">7</value>
<value type="int">8</value>
<value type="int">9</value>
<value type="int">10</value>
<value type="int">11</value>
<value type="int">12</value>
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Scribble</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Scribble2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:C:/Users/jonas/OneDrive/Documents/GitHub/intelliphoto/IntelliPhoto/Scribble/Scribble.pro</value>
<value type="QString" key="RunConfiguration.Arguments"></value>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory"></value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">C:/Users/jonas/OneDrive/Desktop/build-Scribble-Desktop_Qt_5_12_5_MinGW_64_bit-Debug</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="int">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">22</value>
</data>
<data>
<variable>Version</variable>
<value type="int">22</value>
</data>
</qtcreator>

View File

@@ -1,20 +0,0 @@
#include "GUI/IntelliPhotoGui.h"
#include <QApplication>
#include <QDebug>
int main(int argc, char *argv[])
{
// The main application
QApplication app(argc, argv);
// Create and open the main window
IntelliPhotoGui window;
window.show();
return app.exec();
}

View File

@@ -1,19 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Widget</class>
<widget class="QWidget" name="Widget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>Widget</string>
</property>
</widget>
<resources/>
<connections/>
</ui>

Binary file not shown.

View File

@@ -1,3 +1,23 @@
# IntelliPhoto
For the user manual see docs/manual.pdf
For the user manual see `docs/manual.pdf`
## Content
- `src` - Source Code
- `docs` - Documentation of the source code and user manual
- `Examples` - Temporary folder for example pictures
- `Abgabe` - Files that were submitted prior to the development start
## Presentations
- since `0.3`: https://prezi.com/view/M593VBJhmfwQzuqt3t6f/
## Branching
- `master` branch: current state of the program, pull requests only by maintainers or developers
- `dev` branch: state of development for next week, will be merged every Thursday, pushable for maintainers, pull requests for everyone
- `dev-X` branches: feature development branches which will be merged into dev, when tested
- `hotfix-X` branches: braches to fix small but important bugs, will be merged into master and dev
On Thursday the development state (`dev`) will be merged into master and tagged with the current version.

2986
conf/uncrustify.cfg Normal file

File diff suppressed because it is too large Load Diff

92
cppcheck_errors.txt Normal file
View File

@@ -0,0 +1,92 @@
src/GUI/IntelliPhotoGui.cpp:83:15: style: Variable 'layer' is assigned a value that is never used. [unreadVariable]
int layer = paintingArea->addLayer(width,height,0,0);
^
src/IntelliHelper/IntelliColorPicker.cpp:4:3: performance: Variable 'firstColor' is assigned in constructor body. Consider performing initialization in initialization list. [useInitializationList]
firstColor = {255,0,0,255};
^
src/IntelliHelper/IntelliColorPicker.cpp:5:3: performance: Variable 'secondColor' is assigned in constructor body. Consider performing initialization in initialization list. [useInitializationList]
secondColor = {0,255,255,255};
^
src/IntelliHelper/IntelliTriangulation.cpp:116:63: style: Parameter 'triangles' can be declared with const [constParameter]
bool IntelliTriangulation::isInPolygon(std::vector<Triangle> &triangles, QPoint &point){
^
src/Layer/PaintingArea.cpp:335:22: style: Redundant condition: If 'activeLayer > 0', the comparison 'activeLayer != -1' is always true. [redundantCondition]
if(activeLayer!=-1 && activeLayer>0) {
^
src/Tool/IntelliTool.cpp:4:14: warning: Member variable 'IntelliTool::ActiveType' is not initialized in the constructor. [uninitMemberVar]
IntelliTool::IntelliTool(PaintingArea* Area, IntelliColorPicker* colorPicker, IntelliToolsettings* Toolsettings){
^
src/Tool/IntelliTool.cpp:4:14: warning: Member variable 'IntelliTool::activeLayer' is not initialized in the constructor. [uninitMemberVar]
IntelliTool::IntelliTool(PaintingArea* Area, IntelliColorPicker* colorPicker, IntelliToolsettings* Toolsettings){
^
src/Tool/IntelliTool.cpp:4:14: warning: Member variable 'IntelliTool::Canvas' is not initialized in the constructor. [uninitMemberVar]
IntelliTool::IntelliTool(PaintingArea* Area, IntelliColorPicker* colorPicker, IntelliToolsettings* Toolsettings){
^
src/Tool/IntelliToolCircle.cpp:43:9: style: Local variable 'yMin' shadows outer variable [shadowVariable]
int yMin = static_cast<int>(centerPoint.y()-sqrt(pow(radius,2)-pow(i-centerPoint.x(),2)));
^
src/Tool/IntelliToolCircle.cpp:19:7: note: Shadowed declaration
int yMin, yMax, xMin, xMax;
^
src/Tool/IntelliToolCircle.cpp:43:9: note: Shadow variable
int yMin = static_cast<int>(centerPoint.y()-sqrt(pow(radius,2)-pow(i-centerPoint.x(),2)));
^
src/Tool/IntelliToolCircle.cpp:44:9: style: Local variable 'yMax' shadows outer variable [shadowVariable]
int yMax = static_cast<int>(centerPoint.y()+sqrt(pow(radius,2)-pow(i-centerPoint.x(),2)));
^
src/Tool/IntelliToolCircle.cpp:19:13: note: Shadowed declaration
int yMin, yMax, xMin, xMax;
^
src/Tool/IntelliToolCircle.cpp:44:9: note: Shadow variable
int yMax = static_cast<int>(centerPoint.y()+sqrt(pow(radius,2)-pow(i-centerPoint.x(),2)));
^
src/Tool/IntelliToolCircle.cpp:16:13: style: Variable 'outer' is assigned a value that is never used. [unreadVariable]
int outer = radius+20;
^
src/Tool/IntelliToolLine.cpp:51:13: style: Variable 'c' is assigned a value that is never used. [unreadVariable]
int c = lineStartingPoint.y()-lineStartingPoint.x()*m;
^
src/Tool/IntelliToolPolygon.h:25:6: warning: The class 'IntelliToolPolygon' defines member variable with name 'isDrawing' also defined in its parent class 'IntelliTool'. [duplInheritedMember]
bool isDrawing;
^
src/Tool/IntelliTool.h:68:6: note: Parent variable 'IntelliTool::isDrawing'
bool isDrawing = false;
^
src/Tool/IntelliToolPolygon.h:25:6: note: Derived variable 'IntelliToolPolygon::isDrawing'
bool isDrawing;
^
src/GUI/IntelliPhotoGui.cpp:23:0: style: The function 'closeEvent' is never used. [unusedFunction]
^
src/Layer/PaintingArea.cpp:271:0: style: The function 'mouseMoveEvent' is never used. [unusedFunction]
^
src/Layer/PaintingArea.cpp:255:0: style: The function 'mousePressEvent' is never used. [unusedFunction]
^
src/Layer/PaintingArea.cpp:281:0: style: The function 'mouseReleaseEvent' is never used. [unusedFunction]
^
src/Layer/PaintingArea.cpp:307:0: style: The function 'paintEvent' is never used. [unusedFunction]
^
src/Layer/PaintingArea.cpp:318:0: style: The function 'resizeEvent' is never used. [unusedFunction]
^
src/Layer/PaintingArea.cpp:323:0: style: The function 'resizeLayer' is never used. [unusedFunction]
^
src/Layer/PaintingArea.cpp:175:0: style: The function 'slotActivateLayer' is never used. [unusedFunction]
^
src/GUI/IntelliPhotoGui.cpp:157:0: style: The function 'slotClearActiveLayer' is never used. [unusedFunction]
^
src/Layer/PaintingArea.cpp:83:0: style: The function 'slotDeleteActiveLayer' is never used. [unusedFunction]
^
src/Layer/PaintingArea.cpp:294:0: style: The function 'wheelEvent' is never used. [unusedFunction]
^
nofile:0:0: information: Cppcheck cannot find all the include files (use --check-config for details) [missingInclude]

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,94 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg8"
sodipodi:docname="circle-tool.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient36">
<stop
style="stop-color:#d40000;stop-opacity:1;"
offset="0"
id="stop32" />
<stop
style="stop-color:#d40000;stop-opacity:0;"
offset="1"
id="stop34" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient36"
id="linearGradient38"
x1="147.98735"
y1="176.19795"
x2="-13.131983"
y2="106.49742"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="166.94289"
inkscape:cy="125.27289"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
showguides="false"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-229.26665)">
<circle
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1.85208333;stroke-miterlimit:4;stroke-dasharray:none"
id="circle4578"
cx="33.78162"
cy="263.02939"
r="2.5985863" />
<circle
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.11666656;stroke-miterlimit:4;stroke-dasharray:none"
id="path4602"
cx="33.781624"
cy="263.50183"
r="26.316593" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

109
docs/Icons/eraser-tool.svg Normal file
View File

@@ -0,0 +1,109 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg8"
sodipodi:docname="eraser-tool.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
inkscape:export-filename="C:\Users\pauln\tool1.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient36">
<stop
style="stop-color:#d40000;stop-opacity:1;"
offset="0"
id="stop32" />
<stop
style="stop-color:#d40000;stop-opacity:0;"
offset="1"
id="stop34" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient36"
id="linearGradient38"
x1="147.98735"
y1="176.19795"
x2="-13.131983"
y2="106.49742"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="154.79235"
inkscape:cy="136.37674"
inkscape:document-units="mm"
inkscape:current-layer="g4716"
showgrid="false"
units="px"
showguides="false"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:snap-global="false" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-229.26665)">
<g
id="g4716">
<rect
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.54304647;stroke-miterlimit:4;stroke-dasharray:none"
id="rect4775"
width="59.058777"
height="57.168896"
x="4.2522316"
y="234.16145" />
<path
style="fill:none;stroke:#ffffff;stroke-width:16.96439552;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 64.539433,248.9069 -8.315476,0.24173 c 0,0 -13.890625,31.06218 -29.576635,22.72253"
id="path4777"
inkscape:connector-curvature="0" />
<rect
style="fill:#000000;fill-opacity:1;stroke:#ffaaaa;stroke-width:19.02600098;stroke-miterlimit:4;stroke-dasharray:none"
id="rect4779"
width="3.5923276"
height="18.439137"
x="100.56355"
y="236.22752"
transform="matrix(0.96477278,0.26308456,-0.30397854,0.95267888,0,0)" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -0,0 +1,194 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg8"
sodipodi:docname="flood-fill-tool.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient4746">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop4742" />
<stop
style="stop-color:#ff0000;stop-opacity:1"
offset="1"
id="stop4744" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient36">
<stop
style="stop-color:#d40000;stop-opacity:1;"
offset="0"
id="stop32" />
<stop
style="stop-color:#d40000;stop-opacity:0;"
offset="1"
id="stop34" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient36"
id="linearGradient38"
x1="147.98735"
y1="176.19795"
x2="-13.131983"
y2="106.49742"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4746"
id="linearGradient4748"
x1="278.75943"
y1="55.545975"
x2="278.70905"
y2="102.68295"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="178.00664"
inkscape:cy="120.50274"
inkscape:document-units="mm"
inkscape:current-layer="g4716"
showgrid="false"
units="px"
showguides="false"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:snap-global="false" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-229.26665)">
<g
id="g4716">
<rect
style="fill:url(#linearGradient4748);fill-opacity:1;stroke:#000000;stroke-width:2.54346728;stroke-miterlimit:4;stroke-dasharray:none"
id="rect4736"
width="20.992056"
height="38.493938"
x="268.06161"
y="65.299561"
transform="matrix(0.37877425,0.9254891,-0.96183685,0.2736236,0,0)" />
<rect
y="199.89908"
x="116.56168"
height="29.387648"
width="34.49033"
id="rect4710"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.11666656;stroke-miterlimit:4;stroke-dasharray:none"
transform="rotate(22.139383)" />
<ellipse
ry="3.6608384"
rx="17.12623"
cy="229.80646"
cx="133.85408"
id="path4712"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.07105064;stroke-miterlimit:4;stroke-dasharray:none"
transform="rotate(22.139383)" />
<rect
style="fill:#ff2a2a;fill-opacity:1;stroke:none;stroke-width:0.57643586;stroke-miterlimit:4;stroke-dasharray:none"
id="rect4722"
width="6.4093542"
height="5.9942107"
x="106.55282"
y="220.71335"
transform="matrix(0.89502052,0.44602497,-0.31493366,0.94911369,0,0)"
ry="2.9971054" />
<rect
ry="4.9373565"
transform="matrix(0.76230952,0.64721263,-0.19117303,0.98155635,0,0)"
y="211.36087"
x="91.973289"
height="9.8747129"
width="7.5251632"
id="rect4726"
style="fill:#ff2a2a;fill-opacity:1;stroke:none;stroke-width:0.80167449;stroke-miterlimit:4;stroke-dasharray:none" />
<rect
style="fill:#ff2a2a;fill-opacity:1;stroke:none;stroke-width:0.68775666;stroke-miterlimit:4;stroke-dasharray:none"
id="rect4728"
width="6.9141498"
height="7.9099746"
x="106.98909"
y="208.27184"
transform="matrix(0.82967592,0.55824535,-0.238658,0.97110368,0,0)"
ry="3.9549873" />
<rect
style="fill:#ff2a2a;fill-opacity:1;stroke:none;stroke-width:0.83867002;stroke-miterlimit:4;stroke-dasharray:none"
id="rect4732"
width="7.7389083"
height="10.508647"
x="99.318977"
y="206.74135"
transform="matrix(0.74125487,0.67122367,-0.1796405,0.98373233,0,0)"
ry="5.2543235" />
<rect
ry="4.9687924"
transform="matrix(0.76020136,0.64968753,-0.18996354,0.98179115,0,0)"
y="213.06801"
x="82.413681"
height="9.9375849"
width="7.5460315"
id="rect4734"
style="fill:#ff2a2a;fill-opacity:1;stroke:none;stroke-width:0.80533689;stroke-miterlimit:4;stroke-dasharray:none" />
<rect
ry="2.9971054"
transform="matrix(0.89502052,0.44602497,-0.31493366,0.94911369,0,0)"
y="219.89731"
x="128.72516"
height="5.9942107"
width="6.4093542"
id="rect4738"
style="fill:#ff2a2a;fill-opacity:1;stroke:none;stroke-width:0.57643586;stroke-miterlimit:4;stroke-dasharray:none" />
<rect
style="fill:#ff2a2a;fill-opacity:1;stroke:none;stroke-width:0.61344987;stroke-miterlimit:4;stroke-dasharray:none"
id="rect4740"
width="6.5649834"
height="6.6277919"
x="107.49622"
y="215.86592"
transform="matrix(0.87380318,0.48627976,-0.28482771,0.95857873,0,0)"
ry="3.3138959" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.3 KiB

99
docs/Icons/line-tool.svg Normal file
View File

@@ -0,0 +1,99 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg8"
sodipodi:docname="line-tool.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient36">
<stop
style="stop-color:#d40000;stop-opacity:1;"
offset="0"
id="stop32" />
<stop
style="stop-color:#d40000;stop-opacity:0;"
offset="1"
id="stop34" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient36"
id="linearGradient38"
x1="147.98735"
y1="176.19795"
x2="-13.131983"
y2="106.49742"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="107.4786"
inkscape:cy="125.27289"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
showguides="false"
inkscape:window-width="716"
inkscape:window-height="405"
inkscape:window-x="969"
inkscape:window-y="326"
inkscape:window-maximized="0" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-229.26665)">
<path
style="fill:none;stroke:#000000;stroke-width:2.117;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
d="M 7.8430058,289.81843 60.854166,236.80727"
id="path845"
inkscape:connector-curvature="0" />
<circle
r="2.5985863"
cy="236.66553"
cx="60.712429"
id="circle4574"
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1.85208333;stroke-miterlimit:4;stroke-dasharray:none" />
<circle
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1.85208333;stroke-miterlimit:4;stroke-dasharray:none"
id="path4572"
cx="7.8902526"
cy="289.86566"
r="2.5985863" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -0,0 +1,169 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg8"
sodipodi:docname="magic-wand-tool.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient36">
<stop
style="stop-color:#d40000;stop-opacity:1;"
offset="0"
id="stop32" />
<stop
style="stop-color:#d40000;stop-opacity:0;"
offset="1"
id="stop34" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient36"
id="linearGradient38"
x1="147.98735"
y1="176.19795"
x2="-13.131983"
y2="106.49742"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="154.79235"
inkscape:cy="122.64559"
inkscape:document-units="mm"
inkscape:current-layer="g4716"
showgrid="false"
units="px"
showguides="false"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:snap-global="false" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-229.26665)">
<g
id="g4716">
<g
id="g4767"
transform="translate(-4.5357143,7.0870536)">
<rect
transform="rotate(45)"
ry="1.889881"
y="137.33192"
x="203.35738"
height="53.483627"
width="10.299852"
id="rect4758"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.7175684;stroke-miterlimit:4;stroke-dasharray:none" />
<rect
transform="rotate(45)"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.8319869;stroke-miterlimit:4;stroke-dasharray:none"
id="rect4760"
width="9.7328882"
height="2.8348179"
x="203.64085"
y="148.6712" />
<rect
transform="rotate(45)"
y="141.20618"
x="203.64085"
height="2.8348179"
width="9.7328882"
id="rect4762"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.8319869;stroke-miterlimit:4;stroke-dasharray:none" />
</g>
<path
sodipodi:type="star"
style="fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-width:2.11666656;stroke-miterlimit:4;stroke-dasharray:none"
id="path4769"
sodipodi:sides="5"
sodipodi:cx="44.223213"
sodipodi:cy="239.92558"
sodipodi:r1="8.624361"
sodipodi:r2="4.3121805"
sodipodi:arg1="1.0040671"
sodipodi:arg2="1.6323856"
inkscape:flatsided="false"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 48.853421,247.20162 -4.895624,-2.97203 -5.223697,2.348 1.313744,-5.57442 -3.847298,-4.24246 5.707563,-0.47315 2.845937,-4.96999 2.213724,5.28201 5.606183,1.17083 -4.339406,3.73761 z"
inkscape:transform-center-x="2.6385383"
inkscape:transform-center-y="1.2565374"
transform="rotate(-21.763247,66.493886,211.70978)" />
<path
transform="matrix(-0.16940831,-0.61726905,0.61726905,-0.16940831,-99.981719,307.02239)"
inkscape:transform-center-y="1.5995691"
inkscape:transform-center-x="-0.47805579"
d="m 48.853421,247.20162 -4.895624,-2.97203 -5.223697,2.348 1.313744,-5.57442 -3.847298,-4.24246 5.707563,-0.47315 2.845937,-4.96999 2.213724,5.28201 5.606183,1.17083 -4.339406,3.73761 z"
inkscape:randomized="0"
inkscape:rounded="0"
inkscape:flatsided="false"
sodipodi:arg2="1.6323856"
sodipodi:arg1="1.0040671"
sodipodi:r2="4.3121805"
sodipodi:r1="8.624361"
sodipodi:cy="239.92558"
sodipodi:cx="44.223213"
sodipodi:sides="5"
id="path4771"
style="fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-width:2.11666656;stroke-miterlimit:4;stroke-dasharray:none"
sodipodi:type="star" />
<path
sodipodi:type="star"
style="fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-width:2.11666656;stroke-miterlimit:4;stroke-dasharray:none"
id="path4773"
sodipodi:sides="5"
sodipodi:cx="44.223213"
sodipodi:cy="239.92558"
sodipodi:r1="8.624361"
sodipodi:r2="4.3121805"
sodipodi:arg1="1.0040671"
sodipodi:arg2="1.6323856"
inkscape:flatsided="false"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 48.853421,247.20162 -4.895624,-2.97203 -5.223697,2.348 1.313744,-5.57442 -3.847298,-4.24246 5.707563,-0.47315 2.845937,-4.96999 2.213724,5.28201 5.606183,1.17083 -4.339406,3.73761 z"
inkscape:transform-center-x="0.0027046201"
inkscape:transform-center-y="1.1149197"
transform="matrix(0.25199367,-0.58840415,0.58840415,0.25199367,-99.952707,231.42813)" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.0 KiB

105
docs/Icons/pen-tool.svg Normal file
View File

@@ -0,0 +1,105 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg8"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
sodipodi:docname="pen-tool.svg">
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient36">
<stop
style="stop-color:#d40000;stop-opacity:1;"
offset="0"
id="stop32" />
<stop
style="stop-color:#d40000;stop-opacity:0;"
offset="1"
id="stop34" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient36"
id="linearGradient38"
x1="147.98735"
y1="176.19795"
x2="-13.131983"
y2="106.49742"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="376.91553"
inkscape:cy="52.667178"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
showguides="false"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-229.26665)">
<path
style="fill:#000000;fill-opacity:1;stroke-width:0.79907227"
inkscape:transform-center-x="2.1805457"
inkscape:transform-center-y="0.23135325"
d="m 64.660259,230.98439 c -1.469539,1.22623 -3.009608,0.3208 -4.479147,2.55438 l -35.355186,29.81232 20.997146,4.03437 16.236587,-28.5477 c 2.650564,-3.49373 1.675561,-4.59875 2.6006,-7.85337 z"
id="path16"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc" />
<ellipse
style="fill:#000000;fill-opacity:1;stroke-width:0.2446842"
id="path19"
ry="4.8653927"
rx="10.959454"
cy="259.34927"
cx="70.703522"
transform="matrix(0.99175335,0.12816118,-0.13566218,0.99075515,0,0)" />
<path
style="fill:url(#linearGradient38);fill-opacity:1;stroke:none;stroke-width:1.1613673px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 19.935603,103.02103 C 11.487015,114.14384 3.7900432,116.38626 5.1066573,144.52297 7.9154345,204.54791 22.091131,264.29315 75.056641,251.85938 127.52071,239.54339 188.58555,194.70704 177.64844,158.85742 c -12.48014,3.63122 -34.362,10.63187 -51.541,8.65662 -12.43758,-1.43999 -33.957254,-24.02776 -43.821058,-27.9929 -2.739296,6.28676 5.637281,36.28371 -21.584814,27.90384 -62.9196406,-19.36876 11.109787,-93.171912 16.121057,-90.16515 0,0 -33.485263,-5.047889 -56.887022,25.7612 z"
transform="matrix(0.26458333,0,0,0.26458333,0,229.26665)"
id="path23"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ssccccscs" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

117
docs/Icons/polygon-tool.svg Normal file
View File

@@ -0,0 +1,117 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg8"
sodipodi:docname="polygon-tool.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient36">
<stop
style="stop-color:#d40000;stop-opacity:1;"
offset="0"
id="stop32" />
<stop
style="stop-color:#d40000;stop-opacity:0;"
offset="1"
id="stop34" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient36"
id="linearGradient38"
x1="147.98735"
y1="176.19795"
x2="-13.131983"
y2="106.49742"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="107.4786"
inkscape:cy="125.27289"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
showguides="false"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-229.26665)">
<path
style="fill:#ff0000;stroke:#000000;stroke-width:2.11666667;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;fill-opacity:0"
d="M 6.7090773,250.6979 61.137648,243.51635 60.47619,288.87349 10.205357,286.13317 22.867559,260.33629 Z"
id="path4590"
inkscape:connector-curvature="0" />
<circle
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1.85208333;stroke-miterlimit:4;stroke-dasharray:none"
id="path4572"
cx="4.5829611"
cy="249.98918"
r="2.5985863" />
<circle
r="2.5985863"
cy="243.5636"
cx="61.090405"
id="circle4574"
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1.85208333;stroke-miterlimit:4;stroke-dasharray:none" />
<circle
r="2.5985863"
cy="260.38354"
cx="22.914806"
id="circle4576"
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1.85208333;stroke-miterlimit:4;stroke-dasharray:none" />
<circle
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1.85208333;stroke-miterlimit:4;stroke-dasharray:none"
id="circle4588"
cx="9.0241814"
cy="286.84189"
r="2.5985863" />
<circle
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1.85208333;stroke-miterlimit:4;stroke-dasharray:none"
id="circle4578"
cx="60.523441"
cy="288.82626"
r="2.5985863" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="256"
height="256"
viewBox="0 0 67.733332 67.733335"
version="1.1"
id="svg8"
sodipodi:docname="rectangle-tool.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient36">
<stop
style="stop-color:#d40000;stop-opacity:1;"
offset="0"
id="stop32" />
<stop
style="stop-color:#d40000;stop-opacity:0;"
offset="1"
id="stop34" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient36"
id="linearGradient38"
x1="147.98735"
y1="176.19795"
x2="-13.131983"
y2="106.49742"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="107.4786"
inkscape:cy="125.27289"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
showguides="false"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-229.26665)">
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.85208333;stroke-miterlimit:4;stroke-dasharray:none"
id="rect56"
width="54.995537"
height="38.648064"
x="6.1421127"
y="243.04388" />
<circle
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1.85208333;stroke-miterlimit:4;stroke-dasharray:none"
id="path4572"
cx="6.3783484"
cy="243.5636"
r="2.5985863" />
<circle
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1.85208333;stroke-miterlimit:4;stroke-dasharray:none"
id="circle4578"
cx="61.090405"
cy="281.7392"
r="2.5985863" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 814 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 964 B

BIN
docs/Manual/assets/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

244
docs/Manual/assets/icon.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 826 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 993 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1022 B

BIN
docs/Manual/manual.pdf Normal file

Binary file not shown.

123
docs/Manual/manual.tex Normal file
View File

@@ -0,0 +1,123 @@
\documentclass[a4paper, 12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{roboto}
\usepackage{parskip}
\usepackage[english]{babel}
\usepackage{a4wide}
\usepackage{graphicx}
\usepackage{svg}
\title{intelliPhoto 0.31 - Manual}
\author{Paul Norberger \& the intelliPhoto team}
\begin{document}
\begin{titlepage}
\maketitle
\thispagestyle{empty}
\begin{center}
\includegraphics[width=0.35\linewidth,keepaspectratio]{assets/icon}
\end{center}
\tableofcontents
\end{titlepage}
\section{Introduction}
intelliPhoto is a software for creating and editing graphics of various kinds. While it allows for work with a full color space, it will also allow export in a more restriced format, which uses 1 byte per pixel. Currently its in its early stages of development and has a very limited array of tools as well as a functional, but barebones interface. This will change in future versions.
Currently the following features are implemented, which will be described in further detail on the following pages:
\begin{itemize}
\item A barebones user interface
\item Loading and Saving images from and to standardized formats (such as .png, .bmp or .jpg)
\item Drawing with a pen with adjustable width and color, clearing the whole canvas with one color and drawing lines, rectangles, circles and polygons as well as flood filling adjacent pixels
\item A layer structure, that allows for creating, deleting, moving and changing the order of layers
\end{itemize}
\section{User Guide}
After startup the following window opens:
\begin{center}
\includegraphics[width=0.55\linewidth,keepaspectratio]{assets/startup}
\end{center}
\subsection{Loading images}
To load a preexisting image, click on \texttt{File} in the top menu bar and then on \texttt{Open...} in the appearing context menu.
\begin{center}
\includegraphics[width=0.3\linewidth,keepaspectratio]{assets/file-open}
\end{center}
A file explorer window opens. Navigate to the image you want to open and click on \texttt{Open} or the equivalent in your system language. The image will now be imported and displayed.
\subsection{Saving images}
To save the current canvas as an image, click on \texttt{File} in the top menu bar then hover over \texttt{Save As} and click on your preferred file format in the appearing context menu.
\begin{center}
\includegraphics[width=0.3\linewidth,keepaspectratio]{assets/file-save}
\end{center}
A file explorer window opens. Navigate to your preferred save location, input a file name and click on \texttt{Save} or the equivalent in your system language. The image will be saved at that location in the selected file format.
\subsection{Setting the active layer}
The active layer is the layer you are currently editing. To change it, you currently have to specify the index of the layer under \texttt{Layer > select Active...}.
\subsection{Setting the main and secondary color}
The main and secondary color are a concept used by all the drawing tools. You select them independendly of other tool parameters under \texttt{Tools > Color}.
\begin{center}
\includegraphics[width=0.3\linewidth,keepaspectratio]{assets/change-colors}
\end{center}
The appearing popup will allow you to specify a new color.
\subsection{Switching main and secondary color}
An often desired use case is to switch the main and secondary color. So that you don't have to this manually, which would be time consuming there is an easy command to do it under \texttt{Tools > Color}.
It is also bound to the keyboard shortcut \texttt{Ctrl+Shift+S}.
\subsection{Drawing with the pen tool}
To activate the pen tool simply select it under \texttt{Tools > Pen}. You will be prompted to input the pen width, just put in the width you desire.
\begin{center}
\includegraphics[width=0.2\linewidth,keepaspectratio]{assets/tool-pen}
\end{center}
To edit the active layer with the pen tool simply click and hold the left mouse button while hovering the layer on the canvas. When you click within the boundaries of the active layer, the pixels in the radius you selected will change their color to the main color which you selected under the section above.
\subsection{Drawing straight lines}
To activate the line tool select it under \texttt{Tools > Line}. You will be prompted to input the line width.
To draw a line you now have to left click on the starting point on the canvas, hold it pressed and move to the end point and release the mouse button.
You can cancel this operation at any time by clicking the right mouse button while holding the left and then releasing both.
\subsection{Fill the active layer in one color}
To fill the whole layer with the main color, you first specify the color on the right side of the picture.
\begin{center}
\includegraphics[width=0.3\linewidth,keepaspectratio]{assets/tool-plain}
\end{center}
\subsection{Moving layers}
The layers are flexible and can be moved to a different position on the canvas, their order can be changed at will. For this you can use the movement options under \texttt{Layer}. Keep in mind that the changes always only effect the active layer you have chosen in the section "Setting the active layer".
\begin{center}
\includegraphics[width=0.3\linewidth,keepaspectratio]{assets/layer-options}
\end{center}
\subsection{Creating and deleting layers}
Raster Layers can be created at will under \texttt{Layer > New Layer...} You will be prompted to input the width and height of the new layer. Afterwards it will be created.
\begin{center}
\includegraphics[width=0.3\linewidth,keepaspectratio]{assets/create-layer}
\end{center}
To delete the active layer you have to click on \texttt{Delete Layer...} in the same submenu.
\subsection{Transparency and layers}
Layers can also be made more or less transparent under \texttt{Layer > set Alpha}. Values between 0 and 255 are valid. There is currently no error handling and this can lead to memory leaks, so be careful. This also only effects the active layer.
\subsection{Closing the program}
To close the program you have to execute the exit program routine, which heavily depends on your operating system. Usually you can find a red cross symbol at the top right, though it may be different depending on your setup.
For Windows 10, the desired symbol looks like this when hovered:
\begin{center}
\includegraphics[width=0.9\linewidth,keepaspectratio]{assets/close-window}
\end{center}
Alternatively you can press \texttt{CTR+Q}.
\section{Next steps}
The following features are currently high priority and will be implimented in the near future:
\begin{itemize}
\item Refactoring the code, improving readability, structure and the dev documentation
\item Improving the UI and integrating all the tools in it
\end{itemize}
\end{document}

633
docs/ToDo/todo.html Normal file
View File

@@ -0,0 +1,633 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-01-08 Mi 22:22 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Todo-Liste für Intelliphoto</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Paul Norberger" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
pre {
border: 1px solid #ccc;
box-shadow: 3px 3px 3px #eee;
padding: 8pt;
font-family: monospace;
overflow: auto;
margin: 1.2em;
}
pre.src {
position: relative;
overflow: visible;
padding-top: 1.2em;
}
pre.src:before {
display: none;
position: absolute;
background-color: white;
top: -10px;
right: 10px;
padding: 3px;
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
.equation-container {
display: table;
text-align: center;
width: 100%;
}
.equation {
vertical-align: middle;
}
.equation-label {
display: table-cell;
text-align: right;
vertical-align: middle;
}
.inlinetask {
padding: 10px;
border: 2px solid gray;
margin: 10px;
background: #ffffcc;
}
#org-div-home-and-up
{ text-align: right; font-size: 70%; white-space: nowrap; }
textarea { overflow-x: auto; }
.linenr { font-size: smaller }
.code-highlighted { background-color: #ffff00; }
.org-info-js_info-navigation { border-style: none; }
#org-info-js_console-label
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<link rel="stylesheet" type="text/css" href="https://fniessen.github.io/org-html-themes/styles/readtheorg/css/htmlize.css"/>
<link rel="stylesheet" type="text/css" href="https://fniessen.github.io/org-html-themes/styles/readtheorg/css/readtheorg.css"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script type="text/javascript" src="https://fniessen.github.io/org-html-themes/styles/lib/js/jquery.stickytableheaders.min.js"></script>
<script type="text/javascript" src="https://fniessen.github.io/org-html-themes/styles/readtheorg/js/readtheorg.js"></script>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2019 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
<!--/*--><![CDATA[/*><!--*/
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
</script>
</head>
<body>
<div id="content">
<h1 class="title">Todo-Liste für Intelliphoto</h1>
<div id="outline-container-org727fe4c" class="outline-2">
<h2 id="org727fe4c"><span class="section-number-2">1</span> <span class="todo TODO">TODO</span> Dokumentation <code>[2/8]</code></h2>
<div class="outline-text-2" id="text-1">
</div>
<div id="outline-container-org63bd233" class="outline-3">
<h3 id="org63bd233"><span class="section-number-3">1.1</span> <span class="todo TODO">TODO</span> CRC-Karten</h3>
<div class="outline-text-3" id="text-1-1">
<ul class="org-ul">
<li>8/10 CRC-Karten sind fertig.</li>
<li>2 CRC-Karten werden noch benötigt. [Zuständig: Paul]</li>
</ul>
</div>
</div>
<div id="outline-container-org47e205f" class="outline-3">
<h3 id="org47e205f"><span class="section-number-3">1.2</span> <span class="done DONE">DONE</span> UML-Diagramm</h3>
<div class="outline-text-3" id="text-1-2">
</div>
</div>
<div id="outline-container-orgdc9225e" class="outline-3">
<h3 id="orgdc9225e"><span class="section-number-3">1.3</span> <span class="todo TODO">TODO</span> User-Manual</h3>
<div class="outline-text-3" id="text-1-3">
<ul class="org-ul">
<li>Usermanual für Version 0.31 liegt vor.</li>
<li>Nach Userinterfaceupdate: Usermanual muss aktualisiert werden.</li>
</ul>
</div>
</div>
<div id="outline-container-orgdcc6023" class="outline-3">
<h3 id="orgdcc6023"><span class="section-number-3">1.4</span> <span class="todo TODO">TODO</span> Use-Case-Diagramme</h3>
<div class="outline-text-3" id="text-1-4">
<ul class="org-ul">
<li>1/2 Use-Case-Diagramme sind vorhanden.</li>
<li>1 Use-Case-Diagramm wird noch benötigt.</li>
<li>1 Use-Case-Diagramm muss evtl. aktualisiert werden.</li>
</ul>
</div>
</div>
<div id="outline-container-orgad9a852" class="outline-3">
<h3 id="orgad9a852"><span class="section-number-3">1.5</span> <span class="todo TODO">TODO</span> Sequenzdiagramme</h3>
<div class="outline-text-3" id="text-1-5">
<ul class="org-ul">
<li>1/2 Sequenzdiagramme sind vorhanden.</li>
<li>1 Sequenzdiagramm wird noch benötigt. [Zuständig: Seb]</li>
<li>1 Sequenzdiagramm muss aktualisiert werden. [Zuständig: Seb]</li>
</ul>
</div>
</div>
<div id="outline-container-orgd4b00b8" class="outline-3">
<h3 id="orgd4b00b8"><span class="section-number-3">1.6</span> <span class="todo TODO">TODO</span> Zustandsdiagramme</h3>
<div class="outline-text-3" id="text-1-6">
<ul class="org-ul">
<li>1/2 Zustandsdiagramme sind vorhanden.</li>
<li>1 Sequenzdiagramm wird noch benötigt. [Zuständig: Seb]</li>
<li>1 Sequenzdiagramm muss aktualisiert werden. [Zuständig: Seb]</li>
</ul>
</div>
</div>
<div id="outline-container-org520d12f" class="outline-3">
<h3 id="org520d12f"><span class="section-number-3">1.7</span> <span class="done DONE">DONE</span> Selbstgenierende Dokumentation</h3>
<div class="outline-text-3" id="text-1-7">
</div>
</div>
<div id="outline-container-org72e073e" class="outline-3">
<h3 id="org72e073e"><span class="section-number-3">1.8</span> <span class="todo TODO">TODO</span> Volere Snow Cards <code>[0/2]</code></h3>
<div class="outline-text-3" id="text-1-8">
</div>
<div id="outline-container-orga98ac71" class="outline-4">
<h4 id="orga98ac71"><span class="section-number-4">1.8.1</span> Nicht-funktionale Anforderungen</h4>
<div class="outline-text-4" id="text-1-8-1">
<ul class="org-ul">
<li>1/2 Volere Snow Cards sind vorhanden.</li>
<li>1 Volere Snow Card wird noch benötigt. [Zuständig: Paul]</li>
<li>1 Volere Snow Card muss evtl. aktualisiert werden. [Zuständig: Paul]</li>
</ul>
</div>
</div>
<div id="outline-container-org867591d" class="outline-4">
<h4 id="org867591d"><span class="section-number-4">1.8.2</span> Funktionale Anforderungen</h4>
<div class="outline-text-4" id="text-1-8-2">
<ul class="org-ul">
<li>1/2 Volere Snow Cards sind vorhanden.</li>
<li>1 Volere Snow Card wird noch benötigt. [Zuständig: Paul]</li>
<li>1 Volere Snow Card muss evtl. aktualisiert werden. [Zuständig: Paul]</li>
</ul>
</div>
</div>
</div>
<div id="outline-container-org519e5b3" class="outline-3">
<h3 id="org519e5b3"><span class="section-number-3">1.9</span> <span class="todo TODO">TODO</span> Referenzmaschine(n) bestimmen und Specs dokumentieren</h3>
</div>
</div>
<div id="outline-container-org71dd881" class="outline-2">
<h2 id="org71dd881"><span class="section-number-2">2</span> <span class="todo TODO">TODO</span> Allgemeine Features <code>[0/1]</code></h2>
<div class="outline-text-2" id="text-2">
</div>
<div id="outline-container-orgc18b52f" class="outline-3">
<h3 id="orgc18b52f"><span class="section-number-3">2.1</span> <span class="todo TODO">TODO</span> Das Polygon fürs ShapedImage setzbar machen</h3>
</div>
</div>
<div id="outline-container-org09b7ba8" class="outline-2">
<h2 id="org09b7ba8"><span class="section-number-2">3</span> <span class="todo TODO">TODO</span> User Interface <code>[0/4]</code></h2>
<div class="outline-text-2" id="text-3">
</div>
<div id="outline-container-orgc9e5929" class="outline-3">
<h3 id="orgc9e5929"><span class="section-number-3">3.1</span> <span class="todo TODO">TODO</span> Icons für alle Tools</h3>
</div>
<div id="outline-container-org871aa68" class="outline-3">
<h3 id="org871aa68"><span class="section-number-3">3.2</span> <span class="todo TODO">TODO</span> Interfacegrundstruktur erstellen</h3>
</div>
<div id="outline-container-org33bd07e" class="outline-3">
<h3 id="org33bd07e"><span class="section-number-3">3.3</span> <span class="todo TODO">TODO</span> Verknüpfung der Tools im Code mit den Buttons</h3>
</div>
<div id="outline-container-org73fb61c" class="outline-3">
<h3 id="org73fb61c"><span class="section-number-3">3.4</span> <span class="todo TODO">TODO</span> Eigenschaften der Tools im Fenster statt im Popup einstellbar machen</h3>
</div>
</div>
<div id="outline-container-org260b22b" class="outline-2">
<h2 id="org260b22b"><span class="section-number-2">4</span> <span class="todo TODO">TODO</span> Refactoring <code>[2/2]</code></h2>
<div class="outline-text-2" id="text-4">
</div>
<div id="outline-container-org14c3161" class="outline-3">
<h3 id="org14c3161"><span class="section-number-3">4.1</span> <span class="done DONE">DONE</span> Alle öffentlichen Klassen durchkommentieren</h3>
<div class="outline-text-3" id="text-4-1">
</div>
</div>
<div id="outline-container-orgab0dfc3" class="outline-3">
<h3 id="orgab0dfc3"><span class="section-number-3">4.2</span> <span class="done DONE">DONE</span> Toolklassenstruktur verbessern</h3>
<div class="outline-text-3" id="text-4-2">
</div>
</div>
</div>
<div id="outline-container-org4011066" class="outline-2">
<h2 id="org4011066"><span class="section-number-2">5</span> <span class="todo TODO">TODO</span> Tools <code>[0/8]</code></h2>
<div class="outline-text-2" id="text-5">
</div>
<div id="outline-container-orgc61914c" class="outline-3">
<h3 id="orgc61914c"><span class="section-number-3">5.1</span> <span class="todo TODO">TODO</span> PenTool <code>[2/5]</code></h3>
<div class="outline-text-3" id="text-5-1">
</div>
<div id="outline-container-orga854bc3" class="outline-4">
<h4 id="orga854bc3"><span class="section-number-4">5.1.1</span> <span class="done DONE">DONE</span> Icon</h4>
<div class="outline-text-4" id="text-5-1-1">
</div>
</div>
<div id="outline-container-org20b041e" class="outline-4">
<h4 id="org20b041e"><span class="section-number-4">5.1.2</span> <span class="done DONE">DONE</span> Funktionalität</h4>
<div class="outline-text-4" id="text-5-1-2">
</div>
</div>
<div id="outline-container-org1d89bca" class="outline-4">
<h4 id="org1d89bca"><span class="section-number-4">5.1.3</span> <span class="todo TODO">TODO</span> Implementierung in Interface</h4>
</div>
<div id="outline-container-org9eac613" class="outline-4">
<h4 id="org9eac613"><span class="section-number-4">5.1.4</span> <span class="todo TODO">TODO</span> Zeitbestimmung auf Referenzmaschine</h4>
</div>
<div id="outline-container-orgee7119c" class="outline-4">
<h4 id="orgee7119c"><span class="section-number-4">5.1.5</span> <span class="todo TODO">TODO</span> Unittests</h4>
<div class="outline-text-4" id="text-5-1-5">
<ul class="org-ul">
<li>[Zuständig: Mucke]</li>
</ul>
</div>
</div>
</div>
<div id="outline-container-org96b6ffb" class="outline-3">
<h3 id="org96b6ffb"><span class="section-number-3">5.2</span> <span class="todo TODO">TODO</span> EraserTool <code>[2/5]</code></h3>
<div class="outline-text-3" id="text-5-2">
</div>
<div id="outline-container-orgdb9b170" class="outline-4">
<h4 id="orgdb9b170"><span class="section-number-4">5.2.1</span> <span class="done DONE">DONE</span> Icon</h4>
<div class="outline-text-4" id="text-5-2-1">
</div>
</div>
<div id="outline-container-orgd396300" class="outline-4">
<h4 id="orgd396300"><span class="section-number-4">5.2.2</span> <span class="done DONE">DONE</span> Funktionalität</h4>
<div class="outline-text-4" id="text-5-2-2">
</div>
</div>
<div id="outline-container-orgf6a54c8" class="outline-4">
<h4 id="orgf6a54c8"><span class="section-number-4">5.2.3</span> <span class="todo TODO">TODO</span> Implementierung in Interface</h4>
</div>
<div id="outline-container-orgfd30dd1" class="outline-4">
<h4 id="orgfd30dd1"><span class="section-number-4">5.2.4</span> <span class="todo TODO">TODO</span> Zeitbestimmung auf Referenzmaschine</h4>
</div>
<div id="outline-container-org01e4b06" class="outline-4">
<h4 id="org01e4b06"><span class="section-number-4">5.2.5</span> <span class="todo TODO">TODO</span> Unittests</h4>
<div class="outline-text-4" id="text-5-2-5">
<ul class="org-ul">
<li>[Zuständig: Mucke]</li>
</ul>
</div>
</div>
</div>
<div id="outline-container-orgbf5cf8b" class="outline-3">
<h3 id="orgbf5cf8b"><span class="section-number-3">5.3</span> <span class="todo TODO">TODO</span> FloodFillTool <code>[2/5]</code></h3>
<div class="outline-text-3" id="text-5-3">
</div>
<div id="outline-container-orgdd90452" class="outline-4">
<h4 id="orgdd90452"><span class="section-number-4">5.3.1</span> <span class="done DONE">DONE</span> Icon</h4>
<div class="outline-text-4" id="text-5-3-1">
</div>
</div>
<div id="outline-container-orgea3ef61" class="outline-4">
<h4 id="orgea3ef61"><span class="section-number-4">5.3.2</span> <span class="done DONE">DONE</span> Funktionalität</h4>
<div class="outline-text-4" id="text-5-3-2">
</div>
</div>
<div id="outline-container-org0ed97db" class="outline-4">
<h4 id="org0ed97db"><span class="section-number-4">5.3.3</span> <span class="todo TODO">TODO</span> Implementierung in Interface</h4>
</div>
<div id="outline-container-orgdf02859" class="outline-4">
<h4 id="orgdf02859"><span class="section-number-4">5.3.4</span> <span class="todo TODO">TODO</span> Zeitbestimmung auf Referenzmaschine</h4>
</div>
<div id="outline-container-org013b21d" class="outline-4">
<h4 id="org013b21d"><span class="section-number-4">5.3.5</span> <span class="todo TODO">TODO</span> Unittests</h4>
<div class="outline-text-4" id="text-5-3-5">
<ul class="org-ul">
<li>[Zuständig: Mucke]</li>
</ul>
</div>
</div>
</div>
<div id="outline-container-orgf64cac0" class="outline-3">
<h3 id="orgf64cac0"><span class="section-number-3">5.4</span> <span class="todo TODO">TODO</span> PolygonTool <code>[2/5]</code></h3>
<div class="outline-text-3" id="text-5-4">
</div>
<div id="outline-container-orgdb28958" class="outline-4">
<h4 id="orgdb28958"><span class="section-number-4">5.4.1</span> <span class="done DONE">DONE</span> Icon</h4>
<div class="outline-text-4" id="text-5-4-1">
</div>
</div>
<div id="outline-container-org420c237" class="outline-4">
<h4 id="org420c237"><span class="section-number-4">5.4.2</span> <span class="done DONE">DONE</span> Funktionalität</h4>
<div class="outline-text-4" id="text-5-4-2">
</div>
</div>
<div id="outline-container-org97069ab" class="outline-4">
<h4 id="org97069ab"><span class="section-number-4">5.4.3</span> <span class="todo TODO">TODO</span> Implementierung in Interface</h4>
</div>
<div id="outline-container-orgf09c771" class="outline-4">
<h4 id="orgf09c771"><span class="section-number-4">5.4.4</span> <span class="todo TODO">TODO</span> Zeitbestimmung auf Referenzmaschine</h4>
</div>
<div id="outline-container-orgf4ec735" class="outline-4">
<h4 id="orgf4ec735"><span class="section-number-4">5.4.5</span> <span class="todo TODO">TODO</span> Unittests</h4>
<div class="outline-text-4" id="text-5-4-5">
<ul class="org-ul">
<li>[Zuständig: Mucke]</li>
</ul>
</div>
</div>
</div>
<div id="outline-container-orgca4dcd9" class="outline-3">
<h3 id="orgca4dcd9"><span class="section-number-3">5.5</span> <span class="todo TODO">TODO</span> CircleTool <code>[2/5]</code></h3>
<div class="outline-text-3" id="text-5-5">
</div>
<div id="outline-container-org676d30d" class="outline-4">
<h4 id="org676d30d"><span class="section-number-4">5.5.1</span> <span class="done DONE">DONE</span> Icon</h4>
<div class="outline-text-4" id="text-5-5-1">
</div>
</div>
<div id="outline-container-orgc425c57" class="outline-4">
<h4 id="orgc425c57"><span class="section-number-4">5.5.2</span> <span class="done DONE">DONE</span> Funktionalität</h4>
<div class="outline-text-4" id="text-5-5-2">
</div>
</div>
<div id="outline-container-orgd8afb56" class="outline-4">
<h4 id="orgd8afb56"><span class="section-number-4">5.5.3</span> <span class="todo TODO">TODO</span> Implementierung in Interface</h4>
</div>
<div id="outline-container-orgf07a358" class="outline-4">
<h4 id="orgf07a358"><span class="section-number-4">5.5.4</span> <span class="todo TODO">TODO</span> Zeitbestimmung auf Referenzmaschine</h4>
</div>
<div id="outline-container-orge1caeea" class="outline-4">
<h4 id="orge1caeea"><span class="section-number-4">5.5.5</span> <span class="todo TODO">TODO</span> Unittests</h4>
<div class="outline-text-4" id="text-5-5-5">
<ul class="org-ul">
<li>[Zuständig: Mucke]</li>
</ul>
</div>
</div>
</div>
<div id="outline-container-org1e52f33" class="outline-3">
<h3 id="org1e52f33"><span class="section-number-3">5.6</span> <span class="todo TODO">TODO</span> RectangleTool <code>[2/5]</code></h3>
<div class="outline-text-3" id="text-5-6">
</div>
<div id="outline-container-orge2a8adb" class="outline-4">
<h4 id="orge2a8adb"><span class="section-number-4">5.6.1</span> <span class="done DONE">DONE</span> Icon</h4>
<div class="outline-text-4" id="text-5-6-1">
</div>
</div>
<div id="outline-container-orgd09bbb0" class="outline-4">
<h4 id="orgd09bbb0"><span class="section-number-4">5.6.2</span> <span class="done DONE">DONE</span> Funktionalität</h4>
<div class="outline-text-4" id="text-5-6-2">
</div>
</div>
<div id="outline-container-orgcfdf3d8" class="outline-4">
<h4 id="orgcfdf3d8"><span class="section-number-4">5.6.3</span> <span class="todo TODO">TODO</span> Implementierung in Interface</h4>
</div>
<div id="outline-container-org44e0877" class="outline-4">
<h4 id="org44e0877"><span class="section-number-4">5.6.4</span> <span class="todo TODO">TODO</span> Zeitbestimmung auf Referenzmaschine</h4>
</div>
<div id="outline-container-org1388f3c" class="outline-4">
<h4 id="org1388f3c"><span class="section-number-4">5.6.5</span> <span class="todo TODO">TODO</span> Unittests</h4>
<div class="outline-text-4" id="text-5-6-5">
<ul class="org-ul">
<li>[Zuständig: Mucke]</li>
</ul>
</div>
</div>
</div>
<div id="outline-container-org301a565" class="outline-3">
<h3 id="org301a565"><span class="section-number-3">5.7</span> <span class="todo TODO">TODO</span> PlainTool <code>[2/5]</code></h3>
<div class="outline-text-3" id="text-5-7">
</div>
<div id="outline-container-org6025686" class="outline-4">
<h4 id="org6025686"><span class="section-number-4">5.7.1</span> <span class="done DONE">DONE</span> Icon</h4>
<div class="outline-text-4" id="text-5-7-1">
</div>
</div>
<div id="outline-container-orgd5d4b49" class="outline-4">
<h4 id="orgd5d4b49"><span class="section-number-4">5.7.2</span> <span class="done DONE">DONE</span> Funktionalität</h4>
<div class="outline-text-4" id="text-5-7-2">
</div>
</div>
<div id="outline-container-org98bb06f" class="outline-4">
<h4 id="org98bb06f"><span class="section-number-4">5.7.3</span> <span class="todo TODO">TODO</span> Implementierung in Interface</h4>
</div>
<div id="outline-container-org1ccc761" class="outline-4">
<h4 id="org1ccc761"><span class="section-number-4">5.7.4</span> <span class="todo TODO">TODO</span> Zeitbestimmung auf Referenzmaschine</h4>
</div>
<div id="outline-container-orgb254bb6" class="outline-4">
<h4 id="orgb254bb6"><span class="section-number-4">5.7.5</span> <span class="todo TODO">TODO</span> Unittests</h4>
<div class="outline-text-4" id="text-5-7-5">
<ul class="org-ul">
<li>[Zuständig: Mucke]</li>
</ul>
</div>
</div>
</div>
<div id="outline-container-org9001d8a" class="outline-3">
<h3 id="org9001d8a"><span class="section-number-3">5.8</span> <span class="todo TODO">TODO</span> LineTool <code>[1/5]</code></h3>
<div class="outline-text-3" id="text-5-8">
</div>
<div id="outline-container-org004b235" class="outline-4">
<h4 id="org004b235"><span class="section-number-4">5.8.1</span> <span class="todo TODO">TODO</span> Icon</h4>
</div>
<div id="outline-container-orgdc0bcfa" class="outline-4">
<h4 id="orgdc0bcfa"><span class="section-number-4">5.8.2</span> <span class="done DONE">DONE</span> Funktionalität</h4>
<div class="outline-text-4" id="text-5-8-2">
</div>
</div>
<div id="outline-container-orgff90de8" class="outline-4">
<h4 id="orgff90de8"><span class="section-number-4">5.8.3</span> <span class="todo TODO">TODO</span> Implementierung in Interface</h4>
</div>
<div id="outline-container-orga7c74fa" class="outline-4">
<h4 id="orga7c74fa"><span class="section-number-4">5.8.4</span> <span class="todo TODO">TODO</span> Zeitbestimmung auf Referenzmaschine</h4>
</div>
<div id="outline-container-org90aa7eb" class="outline-4">
<h4 id="org90aa7eb"><span class="section-number-4">5.8.5</span> <span class="todo TODO">TODO</span> Unittests</h4>
<div class="outline-text-4" id="text-5-8-5">
<ul class="org-ul">
<li>[Zuständig: Mucke]</li>
</ul>
</div>
</div>
</div>
</div>
<div id="outline-container-orge9910e2" class="outline-2">
<h2 id="orge9910e2"><span class="section-number-2">6</span> <span class="todo TODO">TODO</span> Extras <code>[0/1]</code></h2>
<div class="outline-text-2" id="text-6">
</div>
<div id="outline-container-orgc47b0c8" class="outline-3">
<h3 id="orgc47b0c8"><span class="section-number-3">6.1</span> <span class="todo TODO">TODO</span> 3D-Modelle laden und anzeigen / Tools implementieren</h3>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Paul Norberger</p>
<p class="date">Created: 2020-01-08 Mi 22:22</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
</html>

123
docs/ToDo/todo.org Normal file
View File

@@ -0,0 +1,123 @@
#+TITLE: Todo-Liste für Intelliphoto
#+AUTHOR: Paul Norberger
#+SETUPFILE: https://fniessen.github.io/org-html-themes/setup/theme-readtheorg.setup
#+OPTIONS: toc:nil
* TODO Dokumentation [2/8]
** TODO CRC-Karten
- 8/10 CRC-Karten sind fertig.
- 2 CRC-Karten werden noch benötigt. [Zuständig: Paul]
** DONE UML-Diagramm
CLOSED: [2020-01-08 Mi 21:50]
** TODO User-Manual
- Usermanual für Version 0.31 liegt vor.
- Nach Userinterfaceupdate: Usermanual muss aktualisiert werden.
** TODO Use-Case-Diagramme
- 1/2 Use-Case-Diagramme sind vorhanden.
- 1 Use-Case-Diagramm wird noch benötigt.
- 1 Use-Case-Diagramm muss evtl. aktualisiert werden.
** TODO Sequenzdiagramme
- 1/2 Sequenzdiagramme sind vorhanden.
- 1 Sequenzdiagramm wird noch benötigt. [Zuständig: Seb]
- 1 Sequenzdiagramm muss aktualisiert werden. [Zuständig: Seb]
** TODO Zustandsdiagramme
- 1/2 Zustandsdiagramme sind vorhanden.
- 1 Sequenzdiagramm wird noch benötigt. [Zuständig: Seb]
- 1 Sequenzdiagramm muss aktualisiert werden. [Zuständig: Seb]
** DONE Selbstgenierende Dokumentation
CLOSED: [2020-01-08 Mi 21:57]
** TODO Volere Snow Cards [0/2]
*** Nicht-funktionale Anforderungen
- 1/2 Volere Snow Cards sind vorhanden.
- 1 Volere Snow Card wird noch benötigt. [Zuständig: Paul]
- 1 Volere Snow Card muss evtl. aktualisiert werden. [Zuständig: Paul]
*** Funktionale Anforderungen
- 1/2 Volere Snow Cards sind vorhanden.
- 1 Volere Snow Card wird noch benötigt. [Zuständig: Paul]
- 1 Volere Snow Card muss evtl. aktualisiert werden. [Zuständig: Paul]
** TODO Referenzmaschine(n) bestimmen und Specs dokumentieren
* TODO Allgemeine Features [0/1]
** TODO Das Polygon fürs ShapedImage setzbar machen
* TODO User Interface [0/4]
** TODO Icons für alle Tools
** TODO Interfacegrundstruktur erstellen
** TODO Verknüpfung der Tools im Code mit den Buttons
** TODO Eigenschaften der Tools im Fenster statt im Popup einstellbar machen
* TODO Refactoring [2/2]
** DONE Alle öffentlichen Klassen durchkommentieren
CLOSED: [2020-01-08 Mi 21:47]
** DONE Toolklassenstruktur verbessern
CLOSED: [2020-01-08 Mi 21:58]
* TODO Tools [0/8]
** TODO PenTool [2/5]
*** DONE Icon
CLOSED: [2020-01-08 Mi 19:54]
*** DONE Funktionalität
CLOSED: [2020-01-08 Mi 19:54]
*** TODO Implementierung in Interface
*** TODO Zeitbestimmung auf Referenzmaschine
*** TODO Unittests
- [Zuständig: Mucke]
** TODO EraserTool [2/5]
*** DONE Icon
CLOSED: [2020-01-08 Mi 19:54]
*** DONE Funktionalität
CLOSED: [2020-01-08 Mi 19:54]
*** TODO Implementierung in Interface
*** TODO Zeitbestimmung auf Referenzmaschine
*** TODO Unittests
- [Zuständig: Mucke]
** TODO FloodFillTool [2/5]
*** DONE Icon
CLOSED: [2020-01-08 Mi 19:54]
*** DONE Funktionalität
CLOSED: [2020-01-08 Mi 19:54]
*** TODO Implementierung in Interface
*** TODO Zeitbestimmung auf Referenzmaschine
*** TODO Unittests
- [Zuständig: Mucke]
** TODO PolygonTool [2/5]
*** DONE Icon
CLOSED: [2020-01-08 Mi 19:54]
*** DONE Funktionalität
CLOSED: [2020-01-08 Mi 19:54]
*** TODO Implementierung in Interface
*** TODO Zeitbestimmung auf Referenzmaschine
*** TODO Unittests
- [Zuständig: Mucke]
** TODO CircleTool [2/5]
*** DONE Icon
CLOSED: [2020-01-08 Mi 19:54]
*** DONE Funktionalität
CLOSED: [2020-01-08 Mi 19:54]
*** TODO Implementierung in Interface
*** TODO Zeitbestimmung auf Referenzmaschine
*** TODO Unittests
- [Zuständig: Mucke]
** TODO RectangleTool [2/5]
*** DONE Icon
CLOSED: [2020-01-08 Mi 19:54]
*** DONE Funktionalität
CLOSED: [2020-01-08 Mi 19:54]
*** TODO Implementierung in Interface
*** TODO Zeitbestimmung auf Referenzmaschine
*** TODO Unittests
- [Zuständig: Mucke]
** TODO PlainTool [2/5]
*** DONE Icon
CLOSED: [2020-01-08 Mi 19:54]
*** DONE Funktionalität
CLOSED: [2020-01-08 Mi 19:54]
*** TODO Implementierung in Interface
*** TODO Zeitbestimmung auf Referenzmaschine
*** TODO Unittests
- [Zuständig: Mucke]
** TODO LineTool [1/5]
*** TODO Icon
*** DONE Funktionalität
CLOSED: [2020-01-08 Mi 19:54]
*** TODO Implementierung in Interface
*** TODO Zeitbestimmung auf Referenzmaschine
*** TODO Unittests
- [Zuständig: Mucke]
* TODO Extras [0/1]
** TODO 3D-Modelle laden und anzeigen / Tools implementieren

BIN
docs/ToDo/todo.pdf Normal file

Binary file not shown.

531
docs/UML.uxf Normal file
View File

@@ -0,0 +1,531 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<diagram program="umlet" version="14.3.0">
<zoom_level>10</zoom_level>
<element>
<id>UMLClass</id>
<coordinates>
<x>2220</x>
<y>90</y>
<w>320</w>
<h>180</h>
</coordinates>
<panel_attributes>/*IntelliImage*/
--
#imageData: QImage
--
#resizeImage(image, newSize): void
+drawPixel(p1, color): void
+drawLine(p1, p2, color, penWidth): void
+drawPlain(color): void
/+getDisplayable(displaySize, alpha): QImage/
+loadImage(fileName): Boolean
+getPixelColor(point): QColor
...</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>2230</x>
<y>400</y>
<w>310</w>
<h>80</h>
</coordinates>
<panel_attributes>*IntelliRasterImage*
--
--
#calculateVisibility(): void
+getDisplayable(displaySize, alpha): QImage
...</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>2220</x>
<y>680</y>
<w>320</w>
<h>150</h>
</coordinates>
<panel_attributes>*IntelliShapedImage*
--
-triangles: vector&lt;Triangle&gt;
#polygonData: vector&lt;QPoint&gt;
--
-calculateVisibility(): void
+getDisplayable(displaySize, alpha): QImage
+getPolygonData(): vector&lt;QPoint&gt;
+setPolygon(polygonData): void
...</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>380</x>
<y>90</y>
<w>290</w>
<h>230</h>
</coordinates>
<panel_attributes>/*IntelliTool*/
--
#Area: PaintingArea
#colorPicker: IntelliColorPicker
#Active: LayerObject
#Canvas: LayerObject
#drawing: Boolean
--
/+onMouseRightPressed(x,y): void/
/+onMouseLeftPressed(x,y): void/
/+onMouseRightReleased(x,y): void/
/+onMousLeftReleased(x,y): void/
/+onWheelScrolled(value): void/
/+onMouseMoved(x,y): void/
...</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>2310</x>
<y>260</y>
<w>30</w>
<h>160</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;10.0;140.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>2310</x>
<y>470</y>
<w>30</w>
<h>230</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;10.0;210.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1440</x>
<y>200</y>
<w>240</w>
<h>80</h>
</coordinates>
<panel_attributes>&lt;&lt;Enumeration&gt;&gt;
*ImageType*
--
RASTERIMAGE
SHAPEDIMAGE</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>140</x>
<y>940</y>
<w>250</w>
<h>150</h>
</coordinates>
<panel_attributes>*IntelliToolFloodFill*
--
--
+onMouseRightPressed(x,y): void
+onMouseLeftPressed(x,y): void
+onMouseRightReleased(x,y): void
+onMousLeftReleased(x,y): void
+onWheelScrolled(value): void
+onMouseMoved(x,y): void
...</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>140</x>
<y>480</y>
<w>250</w>
<h>150</h>
</coordinates>
<panel_attributes>*IntelliToolPlain*
--
--
+onMouseRightPressed(x,y): void
+onMouseLeftPressed(x,y): void
+onMouseRightReleased(x,y): void
+onMousLeftReleased(x,y): void
+onWheelScrolled(value): void
+onMouseMoved(x,y): void
...</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1020</x>
<y>480</y>
<w>240</w>
<h>180</h>
</coordinates>
<panel_attributes>*IntelliToolPen*
--
-penWidth: Integer
-point: QPoint
--
+onMouseRightPressed(x,y): void
+onMouseLeftPressed(x,y): void
+onMouseRightReleased(x,y): void
+onMousLeftReleased(x,y): void
+onWheelScrolled(value): void
+onMouseMoved(x,y): void
...</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1020</x>
<y>960</y>
<w>250</w>
<h>180</h>
</coordinates>
<panel_attributes>*IntelliToolRectangle*
--
-alphaInner: Integer
-edgeWidth: Integer
--
+onMouseRightPressed(x,y): void
+onMouseLeftPressed(x,y): void
+onMouseRightReleased(x,y): void
+onMousLeftReleased(x,y): void
+onWheelScrolled(value): void
+onMouseMoved(x,y): void
...</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1020</x>
<y>700</y>
<w>240</w>
<h>200</h>
</coordinates>
<panel_attributes>*IntelliToolLine*
--
-start: QPoint
-lineWidth: Integer
-lineStyle: LineStyle
--
+onMouseRightPressed(x,y): void
+onMouseLeftPressed(x,y): void
+onMouseRightReleased(x,y): void
+onMousLeftReleased(x,y): void
+onWheelScrolled(value): void
+onMouseMoved(x,y): void
...</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>490</x>
<y>670</y>
<w>250</w>
<h>210</h>
</coordinates>
<panel_attributes>*IntelliToolPolygon*
--
-lineWidth: Integer
-isDrawing: Boolean
-PointIsNearStart: Boolean
-alphaInner: Integer
--
+onMouseRightPressed(x,y): void
+onMouseLeftPressed(x,y): void
+onMouseRightReleased(x,y): void
+onMousLeftReleased(x,y): void
+onWheelScrolled(value): void
+onMouseMoved(x,y): void
...</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>640</x>
<y>310</y>
<w>400</w>
<h>190</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;380.0;170.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>380</x>
<y>310</y>
<w>100</w>
<h>650</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>80.0;10.0;10.0;630.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>250</x>
<y>310</y>
<w>160</w>
<h>190</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>140.0;10.0;10.0;170.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>510</x>
<y>310</y>
<w>540</w>
<h>670</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;520.0;650.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>560</x>
<y>310</y>
<w>480</w>
<h>410</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;460.0;390.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>480</x>
<y>310</y>
<w>140</w>
<h>380</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>10.0;10.0;120.0;360.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>140</x>
<y>680</y>
<w>250</w>
<h>200</h>
</coordinates>
<panel_attributes>*IntelliToolCircle*
--
-Middle: QPoint
-alphaInner: Integer
-edgeWidth: Integer
--
+onMouseRightPressed(x,y): void
+onMouseLeftPressed(x,y): void
+onMouseRightReleased(x,y): void
+onMousLeftReleased(x,y): void
+onWheelScrolled(value): void
+onMouseMoved(x,y): void
...</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>380</x>
<y>310</y>
<w>80</w>
<h>390</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>60.0;10.0;10.0;370.0</additional_attributes>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1930</x>
<y>90</y>
<w>280</w>
<h>410</h>
</coordinates>
<panel_attributes>*PaintingArea*
--
-Canvas: QImage
-maxWidth: Integer
-maxHeigth: Integer
-Tool: IntelliTool
-colorPicker: IntelliColorPicker
-layerBundle: vector&lt;LayerObject&gt;
-activeLayer: Integer
--
+open(fileName): Boolean
+save(fileName, fileFormat): void
+addLayer(width, heigth, widthOffset,
heigthOffset, ImageType): Integer
+addLayerAt(idx, width, heigth, widthOffset,
heigthOffset, ImageType): Integer
+deleteLayer(index): void
+setLayerToActive(index): void
+movePositionActive(x,y): void
+moveActiveLayer(idx): void
+setAlphaOfLayer(index, alpha): void
+floodFill(r,g,b,a): void
+getWidthOfActive(): Integer
+getHeigthOfActive(): Integer
--
Also overrides every Inputevent and
creates every Tool.
group=1</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1690</x>
<y>90</y>
<w>230</w>
<h>150</h>
</coordinates>
<panel_attributes>&lt;&lt;dataType&gt;&gt;
*LayerObject*
--
+image: IntelliImage
+width: Integer
+heigth: Integer
+widthOffset: Integer
+heigthOffset: Integer
+alpha: Integer
--</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>830</x>
<y>90</y>
<w>320</w>
<h>90</h>
</coordinates>
<panel_attributes>/*IntelliHelper*/
--
--
+isInTriangle(tri, P): Boolean
+calculateTriangles(polyPoints): vector&lt;Triangle&gt;
+isInPolygon(triangles, point): Boolean</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1440</x>
<y>90</y>
<w>240</w>
<h>80</h>
</coordinates>
<panel_attributes>&lt;&lt;Enumeration&gt;&gt;
*LineStyle*
--
SOLID
DOTTED</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1180</x>
<y>90</y>
<w>250</w>
<h>150</h>
</coordinates>
<panel_attributes>/*IntelliColorPicker*/
--
-firstColor: QColor
-secondColor: QColor
--
+switchColors(): void
+setFirstColor(Color): void
+setSecondColor(Color): void
+getFirstColor(): QColor
+getSecondColor(): QColor</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1690</x>
<y>250</y>
<w>230</w>
<h>100</h>
</coordinates>
<panel_attributes>&lt;&lt;dataType&gt;&gt;
*Triangle*
--
+A: QPoint
+B: QPoint
+C: QPoint
--</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1690</x>
<y>360</y>
<w>230</w>
<h>70</h>
</coordinates>
<panel_attributes>&lt;&lt;dataType&gt;&gt;
*QImage*
--
--
--
Handles the ImageData</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1690</x>
<y>440</y>
<w>230</w>
<h>70</h>
</coordinates>
<panel_attributes>&lt;&lt;dataType&gt;&gt;
*QPoint*
--
--
--
Handles points with x,y,z.</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>UMLClass</id>
<coordinates>
<x>1690</x>
<y>530</y>
<w>230</w>
<h>90</h>
</coordinates>
<panel_attributes>&lt;&lt;dataType&gt;&gt;
*vector&lt;T&gt;*
--
--
--
Is a Vector of witch contains
data with equal type as type T.</panel_attributes>
<additional_attributes/>
</element>
</diagram>

View File

@@ -0,0 +1,30 @@
Req-ID:
0001
Req-Type:
Nicht-Funktional
Events/UCs:
-Speicherung eines Bildes
-Pixel wird mit einem Byte dargestellt
-Overhead für Metainformationen erlaubt
-Keine seperate Abhandlung von "RasterImage" und "ShapedImage"
Description:
-Ein Bild wird mit maximal einem Byte pro Pixel kodiert
-Codierungsmöglichkeit nach folgendem Schema:
-Alle binären Codierung werden einer Farbe zugeordnet -> 2^(8)-1 mögliche Farben + Transparenz
-Die Zuordnung der Farben erfolgt automatisch und wird ebenfalls in der exportierten Datei gespeichert
-Die Umsetzung erfolgt mit dem Standart PNG8
Originator:
Jonas Mucke
Fit Criterion:
-Darstellung von mindestens 250 paarweise verschiedenen Farbstufen
-Darstellung einen transparenten Bits (Alpha Kanal = 1)
-Verarbeitungsmöglichkeit für 2^10 Pixel in unter 0.1 Sekunde beim Einlesen und Speichern
Priority:
0
Support Material:
Ubungsblat_01.pdf
Conflicts:
History:
-Erstellt am 30.10.2019, von Jonas Mucke
-Aktualisiert am 17.12.2019, von Paul Norberger
-Vollständig umgesetzt, Stand: 17.12.2019

View File

@@ -0,0 +1,78 @@
Req-ID:
0002
Req-Type:
Funktional
Events/UCs:
-Bearbeitung des Bildes mit einer Betriebssystem unterstützen Eingabemöglichkeit, zum Beispiel Maus oder Stift
-Bearbeitung mittels verschiedener Zeichen-Tools
-Freiwählbare Farbe aus dem möglichen Farbbereich
Description:
-Ein Farbwert, auch Transparent, welcher durch die genutzte Codierung (siehe Req_0001) darstellbar sein. Dies soll mittels Tools
gesetzt werden können, wobei diese spezifizieren was "gesetzt" bedeutet.
-Tools:
Pinsel:
-Der Pinsel ist ein Tool, welches um seinen Mittelpunkt alles in einem gewissen Pixelradius einfärbt.
Der Pixelradius geht dabei von 1-Pixel bis zu 10-Pixel.
Forms:
-Kreis:
Das Tool Kreis, soll es ermöglichen einen Kreis in einer gewählten Farbe aufzuspannen.
Dabei wird am Mittelpunkt angesetzt und dann zu einem beliebigen Punkt auf dem Kreis gezogen, die restlichen Punkte werden dann
mit dem selben Radius gefunden.
Das Rechteck besitzt 2 Farbattribute, den Rand und die Füllung. Der Rand kann im Bezug auf Breite und Farbe eingestellt werden.
Die Füllung ist innerhalb der Fläche, welche vom Rand aufgespannt wird, und kann im Bezug auf die Farbe und die Transparenz
eingestellt werden.
-Linie:
Das Tool Formen (Linie), soll es einem ermöglichen eine Linie in der gewählten Farbe zwischen 2 Punkten zu
ziehen. Dabei wird am ersten Punkt angesetzt und zum Zielpunkt gezogen, dabei verändert sich die Linie live.
Sobald das Eingabegerät getogglet wird, so wird die aktuelle Stelle als Endpunkt angenommen. Zwischen
Start und Endpunkt wird die Linie gezeichnet.
Es existieren verschiedene Linien-Formen:
-durchgezogene Linie (eine Linie ohne Lücken)
-gestrichelte Linie (auf der Linie werden nur Striche in regelmäßigen Abständen gezeichnet)
-gepunktete Linie (auf der Linie wird punktweise zwischen Farbig und Transparent alterniert)
Die Linie kann mittels dem Breite-Attribut verändert werden (Breite zwischen 1 und 10 Pixel)
-Rechteck:
Das Tool Formen (Rechteck), soll es einem ermöglichen ein Rechteck in ein einer gewählten Farbe aufzuspannen.
Dabei wird am ersten Punkt angesetzt und zum Zielpunkt gezogen. Dabei verändert sich das Rechteck live.
Sobald das Eingabegerät getogglet wird, so wird die aktuelle Stelle als Endpunkt angenommen. Zwischen Start und Endpunkt
wird das Rechteck aufgespannt.
Das Rechteck besitzt 2 Farbattribute, den Rand und die Füllung. Der Rand ist um das Rechteck gesetzt und kann
im Bezug auf Breite und Farbe eingestellt werden. Die Füllung ist innerhalb der Fläche, welche vom Rand aufgespannt wird,
und kann im Bezug auf die Farbe und die Transparenz eingestellt werden.
FloodFill:
-Das Floodfill Tool, bei diesem wird ein Pixel ausgewählt. Alle Pixel die mit diesem Pixel in einer Äquivalenzklasse
im Bezug auf Farbe und Nachbarschafts-Relation stehen, werden in die gewählte Farbe eingefärbt.
Einfarbig:
-Das Einfarbig Tool färbt das gesamte Bild in die gewählte Farbe ein.
Korrektur:
-Die Korrektur Tool ermöglicht das Anpassen verschiedener Bildwerte
-Helligkeit:
Das Tool Korrektur (Helligkeit), soll es ermöglichen die Helligkeit des Bildes anzupassen
-Farbton:
Das Tool Korrektur (Farbton), soll es ermöglichen den Farbton des Bildes anzupassen
Gradiation:
-Das Gradiations Tool soll es ermöglichen Farbverläufe mit einer Anfangs- und Endfarbe zu erstellen, zwischen welchen linear interpoliert wird.
Selektion:
-Das Selektionstool soll es ermöglichen ein Rechteck an Pixeln auszuwählen welche für die Bearbeitung durch andere Tools
berücksichtigt werden sollen.
Dabei wird am ersten Punkt angesetzt und zum Zielpunkt gezogen. Dabei verändert sich das Rechteck live.
Sobald das Eingabegerät getogglet wird, so wird die aktuelle Stelle als Endpunkt angenommen. Zwischen Start und Endpunkt
wird das Rechteck aufgespannt.
Cut:
-Das Cut Tool ermöglicht das Ausschneiden der selektierten Pixel
Originator:
Jonas Mucke
Fit Criterion:
-Das Setzten eines Pixels, in einer beliebigen Farbe, funktioniert in 99,9% in unter 0.01 Sekundens auf Referenzsystem
-Der Vollständige Farbbreich ist frei wählbar
-Es müssen mindestens 3 Tools benutzbar sein, das bedeutet eine 99,9% richtiges Verhalten in unter 0.1 Sekunden auf Referenzsystem
-Tools besitzen in 100% der Fälle das gewünschte Verhalten
Priority:
100
Support Material:
Ubungsblat_01.pdf
Conflicts:
- Keine bekannten Konflikte, Stand: 17.12.2019
History:
- Erstellt am 30.10.2019 um 22:10, von Jonas Mucke
- Aktualisiert am 17.12.2019, von Paul Norberger

View File

@@ -0,0 +1,26 @@
Req-ID:
0003
Req-Type:
Nicht-Funktional
Events/UCs:
- Selbsterklärendes & geordnetes User Interface
Description:
- Verständliches & gewohntes Design der Benutzeroberfläche
- Ähnlichkeit zu bewährten UIs, wie die beliebter Software (Gimp, Photoshop...)
- Toolleiste, die Icons für die einzelnen Tools beinhaltet und logisch in seperate Abschnitte eingeteilt ist
- Toolleiste als Block, der sich je nach Tool ändert auf einer linken Seite des Canvas
- Ein Layer"stack", der kleine Previewbilder der einzelnen Ebenen beinhaltet und das Verändern der Reihenfolge, sowie das Löschen & Erstellen von Layern erlaubt.
- Ein großer, zentraler Canvas, der die Bearbeitung ermöglicht
Originator:
Paul Norberger
Fit Criterion:
-Testgruppe von 3 Personen, die das Programm zuvor noch nie benutzt haben, stellen keine Fragen über die Benutzerobefläche nach einigen Minuten Ausprobieren.
-Kunde, der das neue Interface noch nie benutzt hat, hat keine größeren Schwierigkeiten damit zurecht zu kommen.
Priority:
20
Support Material:
Ubungsblat_01.pdf
Conflicts:
-Keine bekannten Konflikte, Stand: 17.12.2019
History:
-Erstellt am 17.12.2019

View File

@@ -0,0 +1,34 @@
Req-ID:
0004
Req-Type:
Funktional
Events/UCs:
-Rückgängigmachen eines vorherigen Fehlers
-Rückgängigmachen einer versehntlichen Korrektur
-Einen rückgängig gemachten Schritt wiederholen
Description:
-Es werden insgesamt 20 Bearbeitungschritte gespeichert
-Die gesamten Pixeldaten der Ebenen werden für jeden Schritt gespeichert
-Wird der Undo aktiviert, wird zunächst bestimmt ob sich die Daten für den Schritt direkt
davor im Speicher befinden. Ist dies der Fall, werden die Daten geladen und der intern
gespeicherte Index des geladenen Statuses verschiebt sich nach vorn, so kann mehrfach
geundoed und redoed werden. Ist dies nicht der Fall, gibt es ein audiovisuelles Feedback,
dass der Schritt nicht geladen werden kann.
-Wird der Undo aktiviert, wird zunächst bestimmt ob sich die Daten für den Schritt direkt
davor im Speicher befinden Ist dies der Fall, werden die Daten geladen und der intern
gespeicherte Index des geladenen Statuses verschiebt sich nach hinten, so kann mehrfach
geundoed und redoed werden. Ist dies nicht der Fall, gibt es ein audiovisuelles Feedback,
dass der Schritt nicht geladen werden kann.
Originator:
Paul Norberger
Fit Criterion:
-Bis zu 20 Schritte können geundoed und redoed werden
-Das Laden der einzelnen Schritte dauert für ein 512x512px Bild nicht länger als 0.2 Sekunden auf Referenzsystem
Priority:
50
Support Material:
Ubungsblat_01.pdf
Conflicts:
- Keine bekannten Konflikte, Stand: 18.12.2019
History:
- Erstellt am 18.12.2019, von Paul Norberger

View File

@@ -0,0 +1,119 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IntelliPhoto: intelliphoto/src/IntelliHelper/IntelliColorPicker.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">IntelliPhoto
&#160;<span id="projectnumber">0.5</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_intelli_color_picker_8h.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> </div>
<div class="headertitle">
<div class="title">IntelliColorPicker.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;QColor&quot;</code><br />
<code>#include &quot;QPoint&quot;</code><br />
<code>#include &quot;QColorDialog&quot;</code><br />
</div>
<p><a href="_intelli_color_picker_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_intelli_color_picker.html">IntelliColorPicker</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="class_intelli_color_picker.html" title="The IntelliColorPicker manages the selected colors for one whole project.">IntelliColorPicker</a> manages the selected colors for one whole project. <a href="class_intelli_color_picker.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_8db5f55022e7670536cbc9a6a1d6f01c.html">intelliphoto</a></li><li class="navelem"><a class="el" href="dir_83a4347d11f2ba6343d546ab133722d2.html">src</a></li><li class="navelem"><a class="el" href="dir_f50aa5156fe016a259583c412dbf440c.html">IntelliHelper</a></li><li class="navelem"><a class="el" href="_intelli_color_picker_8h.html">IntelliColorPicker.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,65 @@
digraph "intelliphoto/src/IntelliHelper/IntelliColorPicker.h"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="intelliphoto/src/Intelli\lHelper/IntelliColorPicker.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="intelliphoto/src/Intelli\lHelper/IntelliColorPicker.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_helper_2_intelli_color_picker_8cpp.html",tooltip=" "];
Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="intelliphoto/src/Layer\l/PaintingArea.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8h.html",tooltip=" "];
Node3 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="intelliphoto/src/GUI\l/IntelliPhotoGui.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_photo_gui_8cpp.html",tooltip=" "];
Node3 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="intelliphoto/src/Layer\l/PaintingArea.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8cpp.html",tooltip=" "];
Node3 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node6 [label="intelliphoto/src/Tool\l/IntelliTool.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8cpp.html",tooltip=" "];
Node3 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 [label="intelliphoto/src/Tool\l/IntelliToolCircle.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_circle_8cpp.html",tooltip=" "];
Node3 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node8 [label="intelliphoto/src/Tool\l/IntelliToolFloodFill.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_flood_fill_8cpp.html",tooltip=" "];
Node3 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node9 [label="intelliphoto/src/Tool\l/IntelliToolLine.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_line_8cpp.html",tooltip=" "];
Node3 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 [label="intelliphoto/src/Tool\l/IntelliToolPen.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_pen_8cpp.html",tooltip=" "];
Node3 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 [label="intelliphoto/src/Tool\l/IntelliToolPlain.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_plain_8cpp.html",tooltip=" "];
Node3 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node12 [label="intelliphoto/src/Tool\l/IntelliToolPolygon.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_polygon_8cpp.html",tooltip=" "];
Node3 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node13 [label="intelliphoto/src/Tool\l/IntelliToolRectangle.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_rectangle_8cpp.html",tooltip=" "];
Node1 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node14 [label="intelliphoto/src/Tool\l/IntelliColorPicker.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_tool_2_intelli_color_picker_8cpp.html",tooltip=" "];
Node1 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node15 [label="intelliphoto/src/Tool\l/IntelliTool.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8h.html",tooltip=" "];
Node15 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node15 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node15 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node16 [label="intelliphoto/src/Tool\l/IntelliToolCircle.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_circle_8h.html",tooltip=" "];
Node16 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node16 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node15 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node17 [label="intelliphoto/src/Tool\l/IntelliToolFloodFill.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_flood_fill_8h.html",tooltip=" "];
Node17 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node17 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node15 -> Node18 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node18 [label="intelliphoto/src/Tool\l/IntelliToolLine.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_line_8h.html",tooltip=" "];
Node18 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node18 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node15 -> Node19 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node19 [label="intelliphoto/src/Tool\l/IntelliToolPen.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_pen_8h.html",tooltip=" "];
Node19 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node19 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node15 -> Node20 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node20 [label="intelliphoto/src/Tool\l/IntelliToolPlain.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_plain_8h.html",tooltip=" "];
Node20 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node20 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node15 -> Node21 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node21 [label="intelliphoto/src/Tool\l/IntelliToolPolygon.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_polygon_8h.html",tooltip=" "];
Node21 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node21 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node15 -> Node22 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node22 [label="intelliphoto/src/Tool\l/IntelliToolRectangle.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_rectangle_8h.html",tooltip=" "];
Node22 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node22 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
}

View File

@@ -0,0 +1,13 @@
digraph "intelliphoto/src/IntelliHelper/IntelliColorPicker.h"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="intelliphoto/src/Intelli\lHelper/IntelliColorPicker.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="QColorDialog",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
}

View File

@@ -0,0 +1,143 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IntelliPhoto: intelliphoto/src/IntelliHelper/IntelliColorPicker.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">IntelliPhoto
&#160;<span id="projectnumber">0.5</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_intelli_color_picker_8h_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">IntelliColorPicker.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="_intelli_color_picker_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef INTELLITOOLSETCOLORTOOL_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define INTELLITOOLSETCOLORTOOL_H</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160; </div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;QColor&quot;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;QPoint&quot;</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;QColorDialog&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; </div>
<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="class_intelli_color_picker.html"> 11</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_intelli_color_picker.html">IntelliColorPicker</a> {</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<a class="code" href="class_intelli_color_picker.html#a0d1247bdd87add1396ea5d9acaad79ae">IntelliColorPicker</a>();</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keyword">virtual</span> <a class="code" href="class_intelli_color_picker.html#a40b975268a1f05249e8a49dde9a862ff">~IntelliColorPicker</a>();</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_intelli_color_picker.html#aec499265ae28ce1b54be88222e74292e">swapColors</a>();</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;QColor <a class="code" href="class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7">getFirstColor</a>();</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;QColor <a class="code" href="class_intelli_color_picker.html#a55568fbf5dc783f06284b7031ffe9415">getSecondColor</a>();</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_intelli_color_picker.html#a7e2ddbbbfbed383f06b24e5bf6b27ae8">setFirstColor</a>(QColor Color);</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_intelli_color_picker.html#a86bf4a940e4a0e465e30cbdf28748931">setSecondColor</a>(QColor Color);</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;QColor firstColor;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;QColor secondColor;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;};</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#endif // INTELLITOOLSETCOLORTOOL_H</span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aclass_intelli_color_picker_html_a40b975268a1f05249e8a49dde9a862ff"><div class="ttname"><a href="class_intelli_color_picker.html#a40b975268a1f05249e8a49dde9a862ff">IntelliColorPicker::~IntelliColorPicker</a></div><div class="ttdeci">virtual ~IntelliColorPicker()</div><div class="ttdoc">IntelliColorPicker destructor clears up his used memory, if there is some.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_2_intelli_color_picker_8cpp_source.html#l00008">IntelliColorPicker.cpp:8</a></div></div>
<div class="ttc" id="aclass_intelli_color_picker_html_a86bf4a940e4a0e465e30cbdf28748931"><div class="ttname"><a href="class_intelli_color_picker.html#a86bf4a940e4a0e465e30cbdf28748931">IntelliColorPicker::setSecondColor</a></div><div class="ttdeci">void setSecondColor(QColor Color)</div><div class="ttdoc">A function to set the secondary color.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_2_intelli_color_picker_8cpp_source.html#l00028">IntelliColorPicker.cpp:28</a></div></div>
<div class="ttc" id="aclass_intelli_color_picker_html_a55568fbf5dc783f06284b7031ffe9415"><div class="ttname"><a href="class_intelli_color_picker.html#a55568fbf5dc783f06284b7031ffe9415">IntelliColorPicker::getSecondColor</a></div><div class="ttdeci">QColor getSecondColor()</div><div class="ttdoc">A function to read the secondary selected color.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_2_intelli_color_picker_8cpp_source.html#l00020">IntelliColorPicker.cpp:20</a></div></div>
<div class="ttc" id="aclass_intelli_color_picker_html_a7e2ddbbbfbed383f06b24e5bf6b27ae8"><div class="ttname"><a href="class_intelli_color_picker.html#a7e2ddbbbfbed383f06b24e5bf6b27ae8">IntelliColorPicker::setFirstColor</a></div><div class="ttdeci">void setFirstColor(QColor Color)</div><div class="ttdoc">A function to set the primary color.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_2_intelli_color_picker_8cpp_source.html#l00024">IntelliColorPicker.cpp:24</a></div></div>
<div class="ttc" id="aclass_intelli_color_picker_html_aae2eb27b928fe9388b9398b0556303b7"><div class="ttname"><a href="class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7">IntelliColorPicker::getFirstColor</a></div><div class="ttdeci">QColor getFirstColor()</div><div class="ttdoc">A function to read the primary selected color.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_2_intelli_color_picker_8cpp_source.html#l00016">IntelliColorPicker.cpp:16</a></div></div>
<div class="ttc" id="aclass_intelli_color_picker_html"><div class="ttname"><a href="class_intelli_color_picker.html">IntelliColorPicker</a></div><div class="ttdoc">The IntelliColorPicker manages the selected colors for one whole project.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_color_picker_8h_source.html#l00011">IntelliColorPicker.h:11</a></div></div>
<div class="ttc" id="aclass_intelli_color_picker_html_aec499265ae28ce1b54be88222e74292e"><div class="ttname"><a href="class_intelli_color_picker.html#aec499265ae28ce1b54be88222e74292e">IntelliColorPicker::swapColors</a></div><div class="ttdeci">void swapColors()</div><div class="ttdoc">A function switching primary and secondary color.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_2_intelli_color_picker_8cpp_source.html#l00012">IntelliColorPicker.cpp:12</a></div></div>
<div class="ttc" id="aclass_intelli_color_picker_html_a0d1247bdd87add1396ea5d9acaad79ae"><div class="ttname"><a href="class_intelli_color_picker.html#a0d1247bdd87add1396ea5d9acaad79ae">IntelliColorPicker::IntelliColorPicker</a></div><div class="ttdeci">IntelliColorPicker()</div><div class="ttdoc">IntelliColorPicker constructor, setting 2 preset colors, be careful, theese color may change in produ...</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_2_intelli_color_picker_8cpp_source.html#l00003">IntelliColorPicker.cpp:3</a></div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_8db5f55022e7670536cbc9a6a1d6f01c.html">intelliphoto</a></li><li class="navelem"><a class="el" href="dir_83a4347d11f2ba6343d546ab133722d2.html">src</a></li><li class="navelem"><a class="el" href="dir_f50aa5156fe016a259583c412dbf440c.html">IntelliHelper</a></li><li class="navelem"><a class="el" href="_intelli_color_picker_8h.html">IntelliColorPicker.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,108 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IntelliPhoto: intelliphoto/src/IntelliHelper/IntelliColorPicker.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">IntelliPhoto
&#160;<span id="projectnumber">0.5</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_intelli_helper_2_intelli_color_picker_8cpp.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">IntelliColorPicker.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_intelli_color_picker_8h_source.html">IntelliColorPicker.h</a>&quot;</code><br />
</div>
<p><a href="_intelli_helper_2_intelli_color_picker_8cpp_source.html">Go to the source code of this file.</a></p>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_8db5f55022e7670536cbc9a6a1d6f01c.html">intelliphoto</a></li><li class="navelem"><a class="el" href="dir_83a4347d11f2ba6343d546ab133722d2.html">src</a></li><li class="navelem"><a class="el" href="dir_f50aa5156fe016a259583c412dbf440c.html">IntelliHelper</a></li><li class="navelem"><a class="el" href="_intelli_helper_2_intelli_color_picker_8cpp.html">IntelliColorPicker.cpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,15 @@
digraph "intelliphoto/src/IntelliHelper/IntelliColorPicker.cpp"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="intelliphoto/src/Intelli\lHelper/IntelliColorPicker.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="IntelliColorPicker.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_color_picker_8h.html",tooltip=" "];
Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="QColorDialog",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
}

View File

@@ -0,0 +1,143 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IntelliPhoto: intelliphoto/src/IntelliHelper/IntelliColorPicker.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">IntelliPhoto
&#160;<span id="projectnumber">0.5</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_intelli_helper_2_intelli_color_picker_8cpp_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">IntelliColorPicker.cpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="_intelli_helper_2_intelli_color_picker_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_intelli_color_picker_8h.html">IntelliColorPicker.h</a>&quot;</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160; </div>
<div class="line"><a name="l00003"></a><span class="lineno"><a class="line" href="class_intelli_color_picker.html#a0d1247bdd87add1396ea5d9acaad79ae"> 3</a></span>&#160;<a class="code" href="class_intelli_color_picker.html#a0d1247bdd87add1396ea5d9acaad79ae">IntelliColorPicker::IntelliColorPicker</a>(){</div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160; firstColor = {255,0,0,255};</div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; secondColor = {0,255,255,255};</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;}</div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; </div>
<div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="class_intelli_color_picker.html#a40b975268a1f05249e8a49dde9a862ff"> 8</a></span>&#160;<a class="code" href="class_intelli_color_picker.html#a40b975268a1f05249e8a49dde9a862ff">IntelliColorPicker::~IntelliColorPicker</a>(){</div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; </div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;}</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; </div>
<div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="class_intelli_color_picker.html#aec499265ae28ce1b54be88222e74292e"> 12</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_intelli_color_picker.html#aec499265ae28ce1b54be88222e74292e">IntelliColorPicker::swapColors</a>(){</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; std::swap(firstColor, secondColor);</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;}</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; </div>
<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7"> 16</a></span>&#160;QColor <a class="code" href="class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7">IntelliColorPicker::getFirstColor</a>(){</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordflow">return</span> this-&gt;firstColor;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;}</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div>
<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="class_intelli_color_picker.html#a55568fbf5dc783f06284b7031ffe9415"> 20</a></span>&#160;QColor <a class="code" href="class_intelli_color_picker.html#a55568fbf5dc783f06284b7031ffe9415">IntelliColorPicker::getSecondColor</a>(){</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordflow">return</span> this-&gt;secondColor;</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;}</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="class_intelli_color_picker.html#a7e2ddbbbfbed383f06b24e5bf6b27ae8"> 24</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_intelli_color_picker.html#a7e2ddbbbfbed383f06b24e5bf6b27ae8">IntelliColorPicker::setFirstColor</a>(QColor Color){</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; this-&gt;firstColor = Color;</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;}</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="class_intelli_color_picker.html#a86bf4a940e4a0e465e30cbdf28748931"> 28</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_intelli_color_picker.html#a86bf4a940e4a0e465e30cbdf28748931">IntelliColorPicker::setSecondColor</a>(QColor Color){</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; this-&gt;secondColor = Color;</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;}</div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aclass_intelli_color_picker_html_a40b975268a1f05249e8a49dde9a862ff"><div class="ttname"><a href="class_intelli_color_picker.html#a40b975268a1f05249e8a49dde9a862ff">IntelliColorPicker::~IntelliColorPicker</a></div><div class="ttdeci">virtual ~IntelliColorPicker()</div><div class="ttdoc">IntelliColorPicker destructor clears up his used memory, if there is some.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_2_intelli_color_picker_8cpp_source.html#l00008">IntelliColorPicker.cpp:8</a></div></div>
<div class="ttc" id="aclass_intelli_color_picker_html_a86bf4a940e4a0e465e30cbdf28748931"><div class="ttname"><a href="class_intelli_color_picker.html#a86bf4a940e4a0e465e30cbdf28748931">IntelliColorPicker::setSecondColor</a></div><div class="ttdeci">void setSecondColor(QColor Color)</div><div class="ttdoc">A function to set the secondary color.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_2_intelli_color_picker_8cpp_source.html#l00028">IntelliColorPicker.cpp:28</a></div></div>
<div class="ttc" id="aclass_intelli_color_picker_html_a55568fbf5dc783f06284b7031ffe9415"><div class="ttname"><a href="class_intelli_color_picker.html#a55568fbf5dc783f06284b7031ffe9415">IntelliColorPicker::getSecondColor</a></div><div class="ttdeci">QColor getSecondColor()</div><div class="ttdoc">A function to read the secondary selected color.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_2_intelli_color_picker_8cpp_source.html#l00020">IntelliColorPicker.cpp:20</a></div></div>
<div class="ttc" id="a_intelli_color_picker_8h_html"><div class="ttname"><a href="_intelli_color_picker_8h.html">IntelliColorPicker.h</a></div></div>
<div class="ttc" id="aclass_intelli_color_picker_html_a7e2ddbbbfbed383f06b24e5bf6b27ae8"><div class="ttname"><a href="class_intelli_color_picker.html#a7e2ddbbbfbed383f06b24e5bf6b27ae8">IntelliColorPicker::setFirstColor</a></div><div class="ttdeci">void setFirstColor(QColor Color)</div><div class="ttdoc">A function to set the primary color.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_2_intelli_color_picker_8cpp_source.html#l00024">IntelliColorPicker.cpp:24</a></div></div>
<div class="ttc" id="aclass_intelli_color_picker_html_aae2eb27b928fe9388b9398b0556303b7"><div class="ttname"><a href="class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7">IntelliColorPicker::getFirstColor</a></div><div class="ttdeci">QColor getFirstColor()</div><div class="ttdoc">A function to read the primary selected color.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_2_intelli_color_picker_8cpp_source.html#l00016">IntelliColorPicker.cpp:16</a></div></div>
<div class="ttc" id="aclass_intelli_color_picker_html_aec499265ae28ce1b54be88222e74292e"><div class="ttname"><a href="class_intelli_color_picker.html#aec499265ae28ce1b54be88222e74292e">IntelliColorPicker::swapColors</a></div><div class="ttdeci">void swapColors()</div><div class="ttdoc">A function switching primary and secondary color.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_2_intelli_color_picker_8cpp_source.html#l00012">IntelliColorPicker.cpp:12</a></div></div>
<div class="ttc" id="aclass_intelli_color_picker_html_a0d1247bdd87add1396ea5d9acaad79ae"><div class="ttname"><a href="class_intelli_color_picker.html#a0d1247bdd87add1396ea5d9acaad79ae">IntelliColorPicker::IntelliColorPicker</a></div><div class="ttdeci">IntelliColorPicker()</div><div class="ttdoc">IntelliColorPicker constructor, setting 2 preset colors, be careful, theese color may change in produ...</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_2_intelli_color_picker_8cpp_source.html#l00003">IntelliColorPicker.cpp:3</a></div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_8db5f55022e7670536cbc9a6a1d6f01c.html">intelliphoto</a></li><li class="navelem"><a class="el" href="dir_83a4347d11f2ba6343d546ab133722d2.html">src</a></li><li class="navelem"><a class="el" href="dir_f50aa5156fe016a259583c412dbf440c.html">IntelliHelper</a></li><li class="navelem"><a class="el" href="_intelli_helper_2_intelli_color_picker_8cpp.html">IntelliColorPicker.cpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,116 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IntelliPhoto: intelliphoto/src/IntelliHelper/IntelliHelper.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">IntelliPhoto
&#160;<span id="projectnumber">0.5</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_intelli_helper_8cpp.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">IntelliHelper.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_intelli_helper_8h_source.html">IntelliHelper.h</a>&quot;</code><br />
<code>#include &lt;algorithm&gt;</code><br />
<code>#include &lt;queue&gt;</code><br />
<code>#include &lt;cmath&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for IntelliHelper.cpp:</div>
<div class="dyncontent">
<div class="center"><img src="_intelli_helper_8cpp__incl.png" border="0" usemap="#intelliphoto_2src_2_intelli_helper_2_intelli_helper_8cpp" alt=""/></div>
</div>
</div>
<p><a href="_intelli_helper_8cpp_source.html">Go to the source code of this file.</a></p>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_8db5f55022e7670536cbc9a6a1d6f01c.html">intelliphoto</a></li><li class="navelem"><a class="el" href="dir_83a4347d11f2ba6343d546ab133722d2.html">src</a></li><li class="navelem"><a class="el" href="dir_f50aa5156fe016a259583c412dbf440c.html">IntelliHelper</a></li><li class="navelem"><a class="el" href="_intelli_helper_8cpp.html">IntelliHelper.cpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,19 @@
digraph "intelliphoto/src/IntelliHelper/IntelliHelper.cpp"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="intelliphoto/src/Intelli\lHelper/IntelliHelper.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="IntelliHelper.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_helper_8h.html",tooltip=" "];
Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="vector",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="algorithm",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node6 [label="queue",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 [label="cmath",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
}

View File

@@ -0,0 +1,236 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IntelliPhoto: intelliphoto/src/IntelliHelper/IntelliHelper.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">IntelliPhoto
&#160;<span id="projectnumber">0.5</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_intelli_helper_8cpp_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">IntelliHelper.cpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="_intelli_helper_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_intelli_helper_8h.html">IntelliHelper.h</a>&quot;</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &lt;algorithm&gt;</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &lt;queue&gt;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; </div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; </div>
<div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="namespace_intelli_helper.html#a214dc3624ba4562a03dc922e3dd7b617"> 7</a></span>&#160;std::vector&lt;Triangle&gt; <a class="code" href="namespace_intelli_helper.html#a214dc3624ba4562a03dc922e3dd7b617">IntelliHelper::calculateTriangles</a>(std::vector&lt;QPoint&gt; polyPoints){</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <span class="comment">// helper for managing the triangle vertices and their state</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="keyword">struct </span>TriangleHelper {</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; QPoint vertex;</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keywordtype">float</span> interiorAngle;</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keywordtype">int</span> index;</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keywordtype">bool</span> isTip;</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; };</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; </div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="comment">// calculates the inner angle of &#39;point&#39;</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">auto</span> calculateInner = [](QPoint&amp; point, QPoint&amp; prev, QPoint&amp; post){</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; QPoint AP(point.x()-prev.x(), point.y()-prev.y());</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; QPoint BP(point.x()-post.x(), point.y()-post.y());</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordtype">float</span> topSclar = AP.x()*BP.x()+AP.y()*BP.y();</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordtype">float</span> absolute = sqrt(pow(AP.x(),2.)+pow(AP.y(),2.))*sqrt(pow(BP.x(),2.)+pow(BP.y(),2.));</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordflow">return</span> acos(topSclar/absolute);</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; };</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="comment">// gets the first element of vec for which element.isTip == true holds</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">auto</span> getTip= [](<span class="keyword">const</span> std::vector&lt;TriangleHelper&gt;&amp; vec){</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">size_t</span> min = 0;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i=0; i&lt;vec.size(); i++) {</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">if</span>(vec[i].interiorAngle&lt;vec[min].interiorAngle) {</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; min = i;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; }</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; }</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">return</span> vec[min];</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; };</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; </div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="comment">// get the vertex Index bevor index in relation to the container length</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">auto</span> getPrev = [](<span class="keywordtype">int</span> index, <span class="keywordtype">int</span> length){</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">return</span> (index-1)&gt;=0 ? (index-1) : (length-1);</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; };</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; </div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="comment">// get the vertex Index after index in relation to the container lenght</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">auto</span> getPost = [](<span class="keywordtype">int</span> index, <span class="keywordtype">int</span> length){</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">return</span> (index+1)%length;</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; };</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; </div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="comment">// return if the vertex is a tip</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">auto</span> isTip = [](<span class="keywordtype">float</span> angle){</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">return</span> static_cast&lt;double&gt;(angle)&lt;(M_PI/2.);</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; };</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; std::vector&lt;TriangleHelper&gt; Vertices;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; std::vector&lt;Triangle&gt; Triangles;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; </div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="comment">// set up all vertices and calculate intirior angle</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i&lt;static_cast&lt;int&gt;(polyPoints.size()); i++) {</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; TriangleHelper helper;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">int</span> prev = getPrev(i, static_cast&lt;int&gt;(polyPoints.size()));</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">int</span> post = getPost(i, static_cast&lt;int&gt;(polyPoints.size()));</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; </div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; helper.vertex = polyPoints[static_cast&lt;size_t&gt;(i)];</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; helper.index = i;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; helper.interiorAngle = calculateInner(polyPoints[static_cast&lt;size_t&gt;(i)],</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; polyPoints[static_cast&lt;size_t&gt;(prev)],</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; polyPoints[static_cast&lt;size_t&gt;(post)]);</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; helper.isTip = isTip(helper.interiorAngle);</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; Vertices.push_back(helper);</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">// search triangles based on the intirior angles of each vertey</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">while</span>(Triangles.size() != polyPoints.size()-2) {</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="struct_triangle.html">Triangle</a> tri;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; TriangleHelper smallest = getTip(Vertices);</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordtype">int</span> prev = getPrev(smallest.index, static_cast&lt;int&gt;(Vertices.size()));</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordtype">int</span> post = getPost(smallest.index, static_cast&lt;int&gt;(Vertices.size()));</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="comment">// set triangle and push it</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; tri.<a class="code" href="struct_triangle.html#a4fe8b39e0144ebff908b7718c2f2751b">A</a> = Vertices[static_cast&lt;size_t&gt;(prev)].vertex;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; tri.<a class="code" href="struct_triangle.html#a64fa6a90a6131f12a1a3054bf86647d7">B</a> = Vertices[static_cast&lt;size_t&gt;(smallest.index)].vertex;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; tri.<a class="code" href="struct_triangle.html#addb8aaab314d79f3617acca01e12872a">C</a> = Vertices[static_cast&lt;size_t&gt;(post)].vertex;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; Triangles.push_back(tri);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; </div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">// update Vertice array</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; Vertices.erase(Vertices.begin()+smallest.index);</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i=static_cast&lt;size_t&gt;(smallest.index); i&lt;Vertices.size(); i++) {</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; Vertices[i].index-=1;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; }</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; </div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// update post und prev index</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; post = post-1;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; prev = prev&lt;smallest.index ? prev : (prev-1);</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; </div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">// calcultae neighboors of prev and post to calculate new interior angles</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordtype">int</span> prevOfPrev = getPrev(prev, static_cast&lt;int&gt;(Vertices.size()));</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordtype">int</span> postOfPrev = getPost(prev, static_cast&lt;int&gt;(Vertices.size()));</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; </div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordtype">int</span> prevOfPost = getPrev(post, static_cast&lt;int&gt;(Vertices.size()));</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordtype">int</span> postOfPost = getPost(post, static_cast&lt;int&gt;(Vertices.size()));</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="comment">// update vertices with interior angles</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">// updtae prev</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; Vertices[static_cast&lt;size_t&gt;(prev)].interiorAngle = calculateInner(Vertices[static_cast&lt;size_t&gt;(prev)].vertex,</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; Vertices[static_cast&lt;size_t&gt;(prevOfPrev)].vertex,</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; Vertices[static_cast&lt;size_t&gt;(postOfPrev)].vertex);</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; Vertices[static_cast&lt;size_t&gt;(prev)].isTip = isTip(Vertices[static_cast&lt;size_t&gt;(prev)].interiorAngle);</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="comment">// update post</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; Vertices[static_cast&lt;size_t&gt;(post)].interiorAngle = calculateInner(Vertices[static_cast&lt;size_t&gt;(post)].vertex,</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; Vertices[static_cast&lt;size_t&gt;(prevOfPost)].vertex,</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; Vertices[static_cast&lt;size_t&gt;(postOfPost)].vertex);</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; Vertices[static_cast&lt;size_t&gt;(post)].isTip = isTip(Vertices[static_cast&lt;size_t&gt;(post)].interiorAngle);</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> Triangles;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;}</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="namespace_intelli_helper.html#a44d516b3e619e2a743e9c98dd75cf901"> 116</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespace_intelli_helper.html#a44d516b3e619e2a743e9c98dd75cf901">IntelliHelper::isInPolygon</a>(std::vector&lt;Triangle&gt; &amp;triangles, QPoint &amp;point){</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> triangle : triangles) {</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespace_intelli_helper.html#a9fcfe72f00e870be4a8ab9f2e17483c9">IntelliHelper::isInTriangle</a>(triangle, point)) {</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="anamespace_intelli_helper_html_a9fcfe72f00e870be4a8ab9f2e17483c9"><div class="ttname"><a href="namespace_intelli_helper.html#a9fcfe72f00e870be4a8ab9f2e17483c9">IntelliHelper::isInTriangle</a></div><div class="ttdeci">bool isInTriangle(Triangle &amp;tri, QPoint &amp;P)</div><div class="ttdoc">A function to check if a given point is in a triangle.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_8h_source.html#l00033">IntelliHelper.h:33</a></div></div>
<div class="ttc" id="a_intelli_helper_8h_html"><div class="ttname"><a href="_intelli_helper_8h.html">IntelliHelper.h</a></div></div>
<div class="ttc" id="astruct_triangle_html_a64fa6a90a6131f12a1a3054bf86647d7"><div class="ttname"><a href="struct_triangle.html#a64fa6a90a6131f12a1a3054bf86647d7">Triangle::B</a></div><div class="ttdeci">QPoint B</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_8h_source.html#l00011">IntelliHelper.h:11</a></div></div>
<div class="ttc" id="astruct_triangle_html_addb8aaab314d79f3617acca01e12872a"><div class="ttname"><a href="struct_triangle.html#addb8aaab314d79f3617acca01e12872a">Triangle::C</a></div><div class="ttdeci">QPoint C</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_8h_source.html#l00011">IntelliHelper.h:11</a></div></div>
<div class="ttc" id="astruct_triangle_html"><div class="ttname"><a href="struct_triangle.html">Triangle</a></div><div class="ttdoc">The Triangle struct holds the 3 vertices of a triangle.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_8h_source.html#l00010">IntelliHelper.h:10</a></div></div>
<div class="ttc" id="anamespace_intelli_helper_html_a44d516b3e619e2a743e9c98dd75cf901"><div class="ttname"><a href="namespace_intelli_helper.html#a44d516b3e619e2a743e9c98dd75cf901">IntelliHelper::isInPolygon</a></div><div class="ttdeci">bool isInPolygon(std::vector&lt; Triangle &gt; &amp;triangles, QPoint &amp;point)</div><div class="ttdoc">A function to check if a point lies in a polygon by checking its spanning triangles.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_8cpp_source.html#l00116">IntelliHelper.cpp:116</a></div></div>
<div class="ttc" id="astruct_triangle_html_a4fe8b39e0144ebff908b7718c2f2751b"><div class="ttname"><a href="struct_triangle.html#a4fe8b39e0144ebff908b7718c2f2751b">Triangle::A</a></div><div class="ttdeci">QPoint A</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_8h_source.html#l00011">IntelliHelper.h:11</a></div></div>
<div class="ttc" id="anamespace_intelli_helper_html_a214dc3624ba4562a03dc922e3dd7b617"><div class="ttname"><a href="namespace_intelli_helper.html#a214dc3624ba4562a03dc922e3dd7b617">IntelliHelper::calculateTriangles</a></div><div class="ttdeci">std::vector&lt; Triangle &gt; calculateTriangles(std::vector&lt; QPoint &gt; polyPoints)</div><div class="ttdoc">A function to split a polygon in its spanning traingles by using Meisters Theorem of graph theory by ...</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_8cpp_source.html#l00007">IntelliHelper.cpp:7</a></div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_8db5f55022e7670536cbc9a6a1d6f01c.html">intelliphoto</a></li><li class="navelem"><a class="el" href="dir_83a4347d11f2ba6343d546ab133722d2.html">src</a></li><li class="navelem"><a class="el" href="dir_f50aa5156fe016a259583c412dbf440c.html">IntelliHelper</a></li><li class="navelem"><a class="el" href="_intelli_helper_8cpp.html">IntelliHelper.cpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,150 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IntelliPhoto: intelliphoto/src/IntelliHelper/IntelliHelper.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">IntelliPhoto
&#160;<span id="projectnumber">0.5</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_intelli_helper_8h.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">IntelliHelper.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;QPoint&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for IntelliHelper.h:</div>
<div class="dyncontent">
<div class="center"><img src="_intelli_helper_8h__incl.png" border="0" usemap="#intelliphoto_2src_2_intelli_helper_2_intelli_helper_8h" alt=""/></div>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="_intelli_helper_8h__dep__incl.png" border="0" usemap="#intelliphoto_2src_2_intelli_helper_2_intelli_helper_8hdep" alt=""/></div>
</div>
</div>
<p><a href="_intelli_helper_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_triangle.html">Triangle</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="struct_triangle.html" title="The Triangle struct holds the 3 vertices of a triangle.">Triangle</a> struct holds the 3 vertices of a triangle. <a href="struct_triangle.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespace_intelli_helper"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_intelli_helper.html">IntelliHelper</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:afdd9fe78cc5d21b59642910220768149"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_intelli_helper.html#afdd9fe78cc5d21b59642910220768149">IntelliHelper::sign</a> (QPoint &amp;p1, QPoint &amp;p2, QPoint &amp;p3)</td></tr>
<tr class="memdesc:afdd9fe78cc5d21b59642910220768149"><td class="mdescLeft">&#160;</td><td class="mdescRight">A function to get the 2*area of a traingle, using its determinat. <a href="namespace_intelli_helper.html#afdd9fe78cc5d21b59642910220768149">More...</a><br /></td></tr>
<tr class="separator:afdd9fe78cc5d21b59642910220768149"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fcfe72f00e870be4a8ab9f2e17483c9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_intelli_helper.html#a9fcfe72f00e870be4a8ab9f2e17483c9">IntelliHelper::isInTriangle</a> (<a class="el" href="struct_triangle.html">Triangle</a> &amp;tri, QPoint &amp;P)</td></tr>
<tr class="memdesc:a9fcfe72f00e870be4a8ab9f2e17483c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">A function to check if a given point is in a triangle. <a href="namespace_intelli_helper.html#a9fcfe72f00e870be4a8ab9f2e17483c9">More...</a><br /></td></tr>
<tr class="separator:a9fcfe72f00e870be4a8ab9f2e17483c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a214dc3624ba4562a03dc922e3dd7b617"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="struct_triangle.html">Triangle</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_intelli_helper.html#a214dc3624ba4562a03dc922e3dd7b617">IntelliHelper::calculateTriangles</a> (std::vector&lt; QPoint &gt; polyPoints)</td></tr>
<tr class="memdesc:a214dc3624ba4562a03dc922e3dd7b617"><td class="mdescLeft">&#160;</td><td class="mdescRight">A function to split a polygon in its spanning traingles by using Meisters Theorem of graph theory by clipping ears of a planar graph. <a href="namespace_intelli_helper.html#a214dc3624ba4562a03dc922e3dd7b617">More...</a><br /></td></tr>
<tr class="separator:a214dc3624ba4562a03dc922e3dd7b617"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44d516b3e619e2a743e9c98dd75cf901"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_intelli_helper.html#a44d516b3e619e2a743e9c98dd75cf901">IntelliHelper::isInPolygon</a> (std::vector&lt; <a class="el" href="struct_triangle.html">Triangle</a> &gt; &amp;triangles, QPoint &amp;point)</td></tr>
<tr class="memdesc:a44d516b3e619e2a743e9c98dd75cf901"><td class="mdescLeft">&#160;</td><td class="mdescRight">A function to check if a point lies in a polygon by checking its spanning triangles. <a href="namespace_intelli_helper.html#a44d516b3e619e2a743e9c98dd75cf901">More...</a><br /></td></tr>
<tr class="separator:a44d516b3e619e2a743e9c98dd75cf901"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_8db5f55022e7670536cbc9a6a1d6f01c.html">intelliphoto</a></li><li class="navelem"><a class="el" href="dir_83a4347d11f2ba6343d546ab133722d2.html">src</a></li><li class="navelem"><a class="el" href="dir_f50aa5156fe016a259583c412dbf440c.html">IntelliHelper</a></li><li class="navelem"><a class="el" href="_intelli_helper_8h.html">IntelliHelper.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,8 @@
var _intelli_helper_8h =
[
[ "Triangle", "struct_triangle.html", "struct_triangle" ],
[ "calculateTriangles", "_intelli_helper_8h.html#a214dc3624ba4562a03dc922e3dd7b617", null ],
[ "isInPolygon", "_intelli_helper_8h.html#a44d516b3e619e2a743e9c98dd75cf901", null ],
[ "isInTriangle", "_intelli_helper_8h.html#a9fcfe72f00e870be4a8ab9f2e17483c9", null ],
[ "sign", "_intelli_helper_8h.html#afdd9fe78cc5d21b59642910220768149", null ]
];

View File

@@ -0,0 +1,43 @@
digraph "intelliphoto/src/IntelliHelper/IntelliHelper.h"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="intelliphoto/src/Intelli\lHelper/IntelliHelper.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="intelliphoto/src/Image\l/IntelliShapedImage.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_shaped_image_8cpp.html",tooltip=" "];
Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="intelliphoto/src/Image\l/IntelliShapedImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_shaped_image_8h.html",tooltip=" "];
Node3 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="intelliphoto/src/Layer\l/PaintingArea.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8h.html",tooltip=" "];
Node4 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="intelliphoto/src/GUI\l/IntelliPhotoGui.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_photo_gui_8cpp.html",tooltip=" "];
Node4 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node6 [label="intelliphoto/src/Layer\l/PaintingArea.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8cpp.html",tooltip=" "];
Node4 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 [label="intelliphoto/src/Tool\l/IntelliTool.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8cpp.html",tooltip=" "];
Node4 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node8 [label="intelliphoto/src/Tool\l/IntelliToolCircle.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_circle_8cpp.html",tooltip=" "];
Node4 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node9 [label="intelliphoto/src/Tool\l/IntelliToolFloodFill.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_flood_fill_8cpp.html",tooltip=" "];
Node4 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 [label="intelliphoto/src/Tool\l/IntelliToolLine.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_line_8cpp.html",tooltip=" "];
Node4 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 [label="intelliphoto/src/Tool\l/IntelliToolPen.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_pen_8cpp.html",tooltip=" "];
Node4 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node12 [label="intelliphoto/src/Tool\l/IntelliToolPlain.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_plain_8cpp.html",tooltip=" "];
Node4 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node13 [label="intelliphoto/src/Tool\l/IntelliToolPolygon.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_polygon_8cpp.html",tooltip=" "];
Node4 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node14 [label="intelliphoto/src/Tool\l/IntelliToolRectangle.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_rectangle_8cpp.html",tooltip=" "];
Node3 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node15 [label="intelliphoto/src/Intelli\lHelper/IntelliHelper.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_helper_8cpp.html",tooltip=" "];
Node1 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node16 [label="intelliphoto/src/main.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$main_8cpp.html",tooltip=" "];
Node1 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node17 [label="intelliphoto/src/Tool\l/IntelliToolPolygon.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_polygon_8h.html",tooltip=" "];
Node17 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node17 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
}

View File

@@ -0,0 +1,11 @@
digraph "intelliphoto/src/IntelliHelper/IntelliHelper.h"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="intelliphoto/src/Intelli\lHelper/IntelliHelper.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="vector",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
}

View File

@@ -0,0 +1,150 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IntelliPhoto: intelliphoto/src/IntelliHelper/IntelliHelper.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">IntelliPhoto
&#160;<span id="projectnumber">0.5</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_intelli_helper_8h_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">IntelliHelper.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="_intelli_helper_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef INTELLIHELPER_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define INTELLIHELPER_H</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160; </div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;QPoint&gt;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; </div>
<div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="struct_triangle.html"> 10</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_triangle.html">Triangle</a> {</div>
<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="struct_triangle.html#addb8aaab314d79f3617acca01e12872a"> 11</a></span>&#160; QPoint <a class="code" href="struct_triangle.html#a4fe8b39e0144ebff908b7718c2f2751b">A</a>,<a class="code" href="struct_triangle.html#a64fa6a90a6131f12a1a3054bf86647d7">B</a>,<a class="code" href="struct_triangle.html#addb8aaab314d79f3617acca01e12872a">C</a>;</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;};</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; </div>
<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="namespace_intelli_helper.html"> 14</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_intelli_helper.html">IntelliHelper</a> {</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; </div>
<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="namespace_intelli_helper.html#afdd9fe78cc5d21b59642910220768149"> 23</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">float</span> <a class="code" href="namespace_intelli_helper.html#afdd9fe78cc5d21b59642910220768149">sign</a>(QPoint&amp; p1, QPoint&amp; p2, QPoint&amp; p3){</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">return</span> (p1.x()-p3.x())*(p2.y()-p3.y())-(p2.x()-p3.x())*(p1.y()-p3.y());</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;}</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; </div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="namespace_intelli_helper.html#a9fcfe72f00e870be4a8ab9f2e17483c9"> 33</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespace_intelli_helper.html#a9fcfe72f00e870be4a8ab9f2e17483c9">isInTriangle</a>(<a class="code" href="struct_triangle.html">Triangle</a>&amp; tri, QPoint&amp; P){</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordtype">float</span> val1, val2, val3;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordtype">bool</span> neg, pos;</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; </div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; val1 = <a class="code" href="namespace_intelli_helper.html#afdd9fe78cc5d21b59642910220768149">IntelliHelper::sign</a>(P,tri.<a class="code" href="struct_triangle.html#a4fe8b39e0144ebff908b7718c2f2751b">A</a>,tri.<a class="code" href="struct_triangle.html#a64fa6a90a6131f12a1a3054bf86647d7">B</a>);</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; val2 = <a class="code" href="namespace_intelli_helper.html#afdd9fe78cc5d21b59642910220768149">IntelliHelper::sign</a>(P,tri.<a class="code" href="struct_triangle.html#a64fa6a90a6131f12a1a3054bf86647d7">B</a>,tri.<a class="code" href="struct_triangle.html#addb8aaab314d79f3617acca01e12872a">C</a>);</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; val3 = <a class="code" href="namespace_intelli_helper.html#afdd9fe78cc5d21b59642910220768149">IntelliHelper::sign</a>(P,tri.<a class="code" href="struct_triangle.html#addb8aaab314d79f3617acca01e12872a">C</a>,tri.<a class="code" href="struct_triangle.html#a4fe8b39e0144ebff908b7718c2f2751b">A</a>);</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; </div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; neg = (val1&lt;0.f) || (val2&lt;0.f) || (val3&lt;0.f);</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; pos = (val1&gt;0.f) || (val2&gt;0.f) || (val3&gt;0.f);</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; </div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">return</span> !(neg &amp;&amp; pos);</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;}</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; </div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;std::vector&lt;Triangle&gt; <a class="code" href="namespace_intelli_helper.html#a214dc3624ba4562a03dc922e3dd7b617">calculateTriangles</a>(std::vector&lt;QPoint&gt; polyPoints);</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; </div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespace_intelli_helper.html#a44d516b3e619e2a743e9c98dd75cf901">isInPolygon</a>(std::vector&lt;Triangle&gt; &amp;triangles, QPoint &amp;point);</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;}</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; </div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="anamespace_intelli_helper_html_a9fcfe72f00e870be4a8ab9f2e17483c9"><div class="ttname"><a href="namespace_intelli_helper.html#a9fcfe72f00e870be4a8ab9f2e17483c9">IntelliHelper::isInTriangle</a></div><div class="ttdeci">bool isInTriangle(Triangle &amp;tri, QPoint &amp;P)</div><div class="ttdoc">A function to check if a given point is in a triangle.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_8h_source.html#l00033">IntelliHelper.h:33</a></div></div>
<div class="ttc" id="astruct_triangle_html_a64fa6a90a6131f12a1a3054bf86647d7"><div class="ttname"><a href="struct_triangle.html#a64fa6a90a6131f12a1a3054bf86647d7">Triangle::B</a></div><div class="ttdeci">QPoint B</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_8h_source.html#l00011">IntelliHelper.h:11</a></div></div>
<div class="ttc" id="astruct_triangle_html_addb8aaab314d79f3617acca01e12872a"><div class="ttname"><a href="struct_triangle.html#addb8aaab314d79f3617acca01e12872a">Triangle::C</a></div><div class="ttdeci">QPoint C</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_8h_source.html#l00011">IntelliHelper.h:11</a></div></div>
<div class="ttc" id="anamespace_intelli_helper_html"><div class="ttname"><a href="namespace_intelli_helper.html">IntelliHelper</a></div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_8h_source.html#l00014">IntelliHelper.h:14</a></div></div>
<div class="ttc" id="astruct_triangle_html"><div class="ttname"><a href="struct_triangle.html">Triangle</a></div><div class="ttdoc">The Triangle struct holds the 3 vertices of a triangle.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_8h_source.html#l00010">IntelliHelper.h:10</a></div></div>
<div class="ttc" id="anamespace_intelli_helper_html_a44d516b3e619e2a743e9c98dd75cf901"><div class="ttname"><a href="namespace_intelli_helper.html#a44d516b3e619e2a743e9c98dd75cf901">IntelliHelper::isInPolygon</a></div><div class="ttdeci">bool isInPolygon(std::vector&lt; Triangle &gt; &amp;triangles, QPoint &amp;point)</div><div class="ttdoc">A function to check if a point lies in a polygon by checking its spanning triangles.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_8cpp_source.html#l00116">IntelliHelper.cpp:116</a></div></div>
<div class="ttc" id="astruct_triangle_html_a4fe8b39e0144ebff908b7718c2f2751b"><div class="ttname"><a href="struct_triangle.html#a4fe8b39e0144ebff908b7718c2f2751b">Triangle::A</a></div><div class="ttdeci">QPoint A</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_8h_source.html#l00011">IntelliHelper.h:11</a></div></div>
<div class="ttc" id="anamespace_intelli_helper_html_a214dc3624ba4562a03dc922e3dd7b617"><div class="ttname"><a href="namespace_intelli_helper.html#a214dc3624ba4562a03dc922e3dd7b617">IntelliHelper::calculateTriangles</a></div><div class="ttdeci">std::vector&lt; Triangle &gt; calculateTriangles(std::vector&lt; QPoint &gt; polyPoints)</div><div class="ttdoc">A function to split a polygon in its spanning traingles by using Meisters Theorem of graph theory by ...</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_8cpp_source.html#l00007">IntelliHelper.cpp:7</a></div></div>
<div class="ttc" id="anamespace_intelli_helper_html_afdd9fe78cc5d21b59642910220768149"><div class="ttname"><a href="namespace_intelli_helper.html#afdd9fe78cc5d21b59642910220768149">IntelliHelper::sign</a></div><div class="ttdeci">float sign(QPoint &amp;p1, QPoint &amp;p2, QPoint &amp;p3)</div><div class="ttdoc">A function to get the 2*area of a traingle, using its determinat.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_8h_source.html#l00023">IntelliHelper.h:23</a></div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_8db5f55022e7670536cbc9a6a1d6f01c.html">intelliphoto</a></li><li class="navelem"><a class="el" href="dir_83a4347d11f2ba6343d546ab133722d2.html">src</a></li><li class="navelem"><a class="el" href="dir_f50aa5156fe016a259583c412dbf440c.html">IntelliHelper</a></li><li class="navelem"><a class="el" href="_intelli_helper_8h.html">IntelliHelper.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,110 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IntelliPhoto: intelliphoto/src/Image/IntelliImage.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">IntelliPhoto
&#160;<span id="projectnumber">0.5</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_intelli_image_8cpp.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">IntelliImage.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_intelli_image_8h_source.html">Image/IntelliImage.h</a>&quot;</code><br />
<code>#include &lt;QSize&gt;</code><br />
<code>#include &lt;QPainter&gt;</code><br />
</div>
<p><a href="_intelli_image_8cpp_source.html">Go to the source code of this file.</a></p>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_8db5f55022e7670536cbc9a6a1d6f01c.html">intelliphoto</a></li><li class="navelem"><a class="el" href="dir_83a4347d11f2ba6343d546ab133722d2.html">src</a></li><li class="navelem"><a class="el" href="dir_544f9dcb748f922e4bb3be2540380bf2.html">Image</a></li><li class="navelem"><a class="el" href="_intelli_image_8cpp.html">IntelliImage.cpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,30 @@
digraph "intelliphoto/src/Image/IntelliImage.cpp"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="intelliphoto/src/Image\l/IntelliImage.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="Image/IntelliImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_image_8h.html",tooltip=" "];
Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="QImage",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node6 [label="QSize",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node2 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node8 [label="vector",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node2 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node9 [label="IntelliHelper/IntelliTriangulation.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_triangulation_8h.html",tooltip=" "];
Node9 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node9 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 [label="IntelliHelper/IntelliRender\lSettings.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_render_settings_8h.html",tooltip=" "];
Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 [label="QPainter",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
}

View File

@@ -0,0 +1,249 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IntelliPhoto: intelliphoto/src/Image/IntelliImage.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">IntelliPhoto
&#160;<span id="projectnumber">0.5</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_intelli_image_8cpp_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">IntelliImage.cpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="_intelli_image_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_intelli_image_8h.html">Image/IntelliImage.h</a>&quot;</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &lt;QSize&gt;</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &lt;QPainter&gt;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160; </div>
<div class="line"><a name="l00005"></a><span class="lineno"><a class="line" href="class_intelli_image.html#a2c6632ff35ee0a7094a8a289eb3a8652"> 5</a></span>&#160;<a class="code" href="class_intelli_image.html#a2c6632ff35ee0a7094a8a289eb3a8652">IntelliImage::IntelliImage</a>(<span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, <span class="keywordtype">bool</span> fastRendererOn)</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; : imageData(QSize(width, height), fastRendererOn ? QImage::Format_Indexed8 : QImage::Format_ARGB32){</div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; <span class="keywordflow">if</span>(fastRendererOn) {</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a> = <a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>.convertToFormat(QImage::Format_ARGB32);</div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; }</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>.fill(QColor(255,255,255,255));</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keywordflow">if</span>(fastRendererOn) {</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a> = <a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>.convertToFormat(QImage::Format_Indexed8);</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; }</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; this-&gt;<a class="code" href="class_intelli_image.html#adade0f6990152f09d953067a51511b9c">fastRenderer</a> = fastRendererOn;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; </div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;}</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; </div>
<div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="class_intelli_image.html#ac398bfa9ddd3185508a1e36ee15d80cc"> 18</a></span>&#160;<a class="code" href="class_intelli_image.html#ac398bfa9ddd3185508a1e36ee15d80cc">IntelliImage::~IntelliImage</a>(){</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;}</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="class_intelli_image.html#ae231800aba38c96074bbe9bb6e341d4e"> 22</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_intelli_image.html#ae231800aba38c96074bbe9bb6e341d4e">IntelliImage::loadImage</a>(<span class="keyword">const</span> QString &amp;filePath){</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="comment">// Holds the image</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; QImage loadedImage;</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="comment">// If the image wasn&#39;t loaded leave this function</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">if</span> (!loadedImage.load(filePath))</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; </div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="comment">// scaled Image to size of Layer</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; loadedImage = loadedImage.scaled(<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>.size(),Qt::IgnoreAspectRatio);</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; </div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a> = loadedImage.convertToFormat(<a class="code" href="class_intelli_image.html#adade0f6990152f09d953067a51511b9c">fastRenderer</a> ? QImage::Format_Indexed8 : QImage::Format_ARGB32);</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;}</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; </div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="class_intelli_image.html#a177403ab9585d4ba31984a644c54d310"> 37</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_intelli_image.html#a177403ab9585d4ba31984a644c54d310">IntelliImage::resizeImage</a>(QImage*image, <span class="keyword">const</span> QSize &amp;newSize){</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="comment">// Check if we need to redraw the image</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">if</span> (image-&gt;size() == newSize)</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; </div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="comment">// Create a new image to display and fill it with white</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; QImage newImage(newSize, QImage::Format_ARGB32);</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; newImage.fill(qRgb(255, 255, 255));</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="comment">// Draw the image</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; QPainter painter(&amp;newImage);</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; painter.drawImage(QPoint(0, 0), *image);</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; *image = newImage;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_intelli_image.html#adade0f6990152f09d953067a51511b9c">fastRenderer</a>) {</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; this-&gt;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a> = this-&gt;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>.convertToFormat(QImage::Format_Indexed8);</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; }</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;}</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; </div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_intelli_image.html#af3c859f5c409e37051edfd9e9fbca056"> 55</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_intelli_image.html#af3c859f5c409e37051edfd9e9fbca056">IntelliImage::drawPixel</a>(<span class="keyword">const</span> QPoint &amp;p1, <span class="keyword">const</span> QColor&amp; color){</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_intelli_image.html#adade0f6990152f09d953067a51511b9c">fastRenderer</a>) {</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; this-&gt;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a> = this-&gt;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>.convertToFormat(QImage::Format_ARGB32);</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="comment">// Used to draw on the widget</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; QPainter painter(&amp;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>);</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; </div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="comment">// Set the current settings for the pen</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; painter.setPen(QPen(color, 1, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; </div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="comment">// Draw a line from the last registered point to the current</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; painter.drawPoint(p1);</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_intelli_image.html#adade0f6990152f09d953067a51511b9c">fastRenderer</a>) {</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; this-&gt;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a> = this-&gt;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>.convertToFormat(QImage::Format_Indexed8);</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div>
<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="class_intelli_image.html#a2e787f1b333b59401643936ebb3dcfe1"> 72</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_intelli_image.html#a2e787f1b333b59401643936ebb3dcfe1">IntelliImage::drawPoint</a>(<span class="keyword">const</span> QPoint &amp;p1, <span class="keyword">const</span> QColor&amp; color, <span class="keyword">const</span> <span class="keywordtype">int</span>&amp; penWidth){</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_intelli_image.html#adade0f6990152f09d953067a51511b9c">fastRenderer</a>) {</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; this-&gt;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a> = this-&gt;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>.convertToFormat(QImage::Format_ARGB32);</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="comment">// Used to draw on the widget</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; QPainter painter(&amp;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>);</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; </div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="comment">// Set the current settings for the pen</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; painter.setPen(QPen(color, penWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="comment">// Draw a line from the last registered point to the current</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; painter.drawPoint(p1);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_intelli_image.html#adade0f6990152f09d953067a51511b9c">fastRenderer</a>) {</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; this-&gt;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a> = this-&gt;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>.convertToFormat(QImage::Format_Indexed8);</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;}</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; </div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31"> 88</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31">IntelliImage::drawLine</a>(<span class="keyword">const</span> QPoint &amp;p1, <span class="keyword">const</span> QPoint&amp; p2, <span class="keyword">const</span> QColor&amp; color, <span class="keyword">const</span> <span class="keywordtype">int</span>&amp; penWidth){</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_intelli_image.html#adade0f6990152f09d953067a51511b9c">fastRenderer</a>) {</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; this-&gt;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a> = this-&gt;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>.convertToFormat(QImage::Format_ARGB32);</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="comment">// Used to draw on the widget</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; QPainter painter(&amp;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>);</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; </div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="comment">// Set the current settings for the pen</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; painter.setPen(QPen(color, penWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; </div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">// Draw a line from the last registered point to the current</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; painter.drawLine(p1, p2);</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_intelli_image.html#adade0f6990152f09d953067a51511b9c">fastRenderer</a>) {</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; this-&gt;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a> = this-&gt;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>.convertToFormat(QImage::Format_Indexed8);</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;}</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; </div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="class_intelli_image.html#a6be622810dc2bc756054bb5769becb06"> 105</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_intelli_image.html#a6be622810dc2bc756054bb5769becb06">IntelliImage::drawPlain</a>(<span class="keyword">const</span> QColor&amp; color){</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_intelli_image.html#adade0f6990152f09d953067a51511b9c">fastRenderer</a>) {</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; this-&gt;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a> = this-&gt;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>.convertToFormat(QImage::Format_ARGB32);</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>.fill(color);</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_intelli_image.html#adade0f6990152f09d953067a51511b9c">fastRenderer</a>) {</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; this-&gt;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a> = this-&gt;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>.convertToFormat(QImage::Format_Indexed8);</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; </div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="class_intelli_image.html#a4576ebb6d863321c816293d7b7f9fd3f"> 115</a></span>&#160;QColor <a class="code" href="class_intelli_image.html#a4576ebb6d863321c816293d7b7f9fd3f">IntelliImage::getPixelColor</a>(QPoint&amp; point){</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_intelli_image.html#adade0f6990152f09d953067a51511b9c">fastRenderer</a>) {</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; QImage copy = this-&gt;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>.convertToFormat(QImage::Format_ARGB32);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> copy.pixelColor(point);</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>.pixelColor(point);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;}</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; </div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="class_intelli_image.html#ad66fbe380ffe0e073a8cd760f8285fe3"> 123</a></span>&#160;QImage <a class="code" href="class_intelli_image.html#ad66fbe380ffe0e073a8cd760f8285fe3">IntelliImage::getImageData</a>(){</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">return</span> this-&gt;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;}</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; </div>
<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="class_intelli_image.html#ae4dbaefabce4ec5bec37f5b95e2f62e2"> 127</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_intelli_image.html#ae4dbaefabce4ec5bec37f5b95e2f62e2">IntelliImage::updateRendererSetting</a>(<span class="keywordtype">bool</span> fastRendererOn){</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; this-&gt;<a class="code" href="class_intelli_image.html#adade0f6990152f09d953067a51511b9c">fastRenderer</a> = fastRendererOn;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; this-&gt;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a> = this-&gt;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>.convertToFormat(<a class="code" href="class_intelli_image.html#adade0f6990152f09d953067a51511b9c">fastRenderer</a> ? QImage::Format_Indexed8 : QImage::Format_ARGB32);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;}</div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aclass_intelli_image_html_af8eddbd9aa54c8d37590d1d4bf8dce31"><div class="ttname"><a href="class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31">IntelliImage::drawLine</a></div><div class="ttdeci">virtual void drawLine(const QPoint &amp;p1, const QPoint &amp;p2, const QColor &amp;color, const int &amp;penWidth)</div><div class="ttdoc">A function that draws A Line between two given Points in a given color.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8cpp_source.html#l00088">IntelliImage.cpp:88</a></div></div>
<div class="ttc" id="a_intelli_image_8h_html"><div class="ttname"><a href="_intelli_image_8h.html">IntelliImage.h</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_ac398bfa9ddd3185508a1e36ee15d80cc"><div class="ttname"><a href="class_intelli_image.html#ac398bfa9ddd3185508a1e36ee15d80cc">IntelliImage::~IntelliImage</a></div><div class="ttdeci">virtual ~IntelliImage()=0</div><div class="ttdoc">An Abstract Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8cpp_source.html#l00018">IntelliImage.cpp:18</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_af3c859f5c409e37051edfd9e9fbca056"><div class="ttname"><a href="class_intelli_image.html#af3c859f5c409e37051edfd9e9fbca056">IntelliImage::drawPixel</a></div><div class="ttdeci">virtual void drawPixel(const QPoint &amp;p1, const QColor &amp;color)</div><div class="ttdoc">A funtcion used to draw a pixel on the Image with the given Color.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8cpp_source.html#l00055">IntelliImage.cpp:55</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_a2c6632ff35ee0a7094a8a289eb3a8652"><div class="ttname"><a href="class_intelli_image.html#a2c6632ff35ee0a7094a8a289eb3a8652">IntelliImage::IntelliImage</a></div><div class="ttdeci">IntelliImage(int width, int height, bool fastRendererOn)</div><div class="ttdoc">The Construcor of the IntelliImage. Given the Image dimensions.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8cpp_source.html#l00005">IntelliImage.cpp:5</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_a2e787f1b333b59401643936ebb3dcfe1"><div class="ttname"><a href="class_intelli_image.html#a2e787f1b333b59401643936ebb3dcfe1">IntelliImage::drawPoint</a></div><div class="ttdeci">virtual void drawPoint(const QPoint &amp;p1, const QColor &amp;color, const int &amp;penWidth)</div><div class="ttdoc">A.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8cpp_source.html#l00072">IntelliImage.cpp:72</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_ae4dbaefabce4ec5bec37f5b95e2f62e2"><div class="ttname"><a href="class_intelli_image.html#ae4dbaefabce4ec5bec37f5b95e2f62e2">IntelliImage::updateRendererSetting</a></div><div class="ttdeci">virtual void updateRendererSetting(bool fastRendererOn)</div><div class="ttdoc">updateRendererSetting updates the existing image format to the new format.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8cpp_source.html#l00127">IntelliImage.cpp:127</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_ad66fbe380ffe0e073a8cd760f8285fe3"><div class="ttname"><a href="class_intelli_image.html#ad66fbe380ffe0e073a8cd760f8285fe3">IntelliImage::getImageData</a></div><div class="ttdeci">virtual QImage getImageData()</div><div class="ttdoc">getImageData returns the data of the current image.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8cpp_source.html#l00123">IntelliImage.cpp:123</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_a177403ab9585d4ba31984a644c54d310"><div class="ttname"><a href="class_intelli_image.html#a177403ab9585d4ba31984a644c54d310">IntelliImage::resizeImage</a></div><div class="ttdeci">void resizeImage(QImage *image, const QSize &amp;newSize)</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8cpp_source.html#l00037">IntelliImage.cpp:37</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_a4576ebb6d863321c816293d7b7f9fd3f"><div class="ttname"><a href="class_intelli_image.html#a4576ebb6d863321c816293d7b7f9fd3f">IntelliImage::getPixelColor</a></div><div class="ttdeci">virtual QColor getPixelColor(QPoint &amp;point)</div><div class="ttdoc">A function that returns the pixelcolor at a certain point.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8cpp_source.html#l00115">IntelliImage.cpp:115</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_adade0f6990152f09d953067a51511b9c"><div class="ttname"><a href="class_intelli_image.html#adade0f6990152f09d953067a51511b9c">IntelliImage::fastRenderer</a></div><div class="ttdeci">bool fastRenderer</div><div class="ttdoc">fastRenderer is the flag that represents the usage of 8bit pictures.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8h_source.html#l00047">IntelliImage.h:47</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_a2431be82e9e85dd34b62a7f7cba053c2"><div class="ttname"><a href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">IntelliImage::imageData</a></div><div class="ttdeci">QImage imageData</div><div class="ttdoc">The underlying image data.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8h_source.html#l00037">IntelliImage.h:37</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_ae231800aba38c96074bbe9bb6e341d4e"><div class="ttname"><a href="class_intelli_image.html#ae231800aba38c96074bbe9bb6e341d4e">IntelliImage::loadImage</a></div><div class="ttdeci">virtual bool loadImage(const QString &amp;filePath)</div><div class="ttdoc">A function that loads and sclaes an image to the fitting dimensions.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8cpp_source.html#l00022">IntelliImage.cpp:22</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_a6be622810dc2bc756054bb5769becb06"><div class="ttname"><a href="class_intelli_image.html#a6be622810dc2bc756054bb5769becb06">IntelliImage::drawPlain</a></div><div class="ttdeci">virtual void drawPlain(const QColor &amp;color)</div><div class="ttdoc">A function that clears the whole image in a given Color.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8cpp_source.html#l00105">IntelliImage.cpp:105</a></div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_8db5f55022e7670536cbc9a6a1d6f01c.html">intelliphoto</a></li><li class="navelem"><a class="el" href="dir_83a4347d11f2ba6343d546ab133722d2.html">src</a></li><li class="navelem"><a class="el" href="dir_544f9dcb748f922e4bb3be2540380bf2.html">Image</a></li><li class="navelem"><a class="el" href="_intelli_image_8cpp.html">IntelliImage.cpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,124 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IntelliPhoto: intelliphoto/src/Image/IntelliImage.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">IntelliPhoto
&#160;<span id="projectnumber">0.5</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_intelli_image_8h.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> </div>
<div class="headertitle">
<div class="title">IntelliImage.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;QImage&gt;</code><br />
<code>#include &lt;QPoint&gt;</code><br />
<code>#include &lt;QColor&gt;</code><br />
<code>#include &lt;QSize&gt;</code><br />
<code>#include &lt;QWidget&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
<code>#include &quot;<a class="el" href="_intelli_triangulation_8h_source.html">IntelliHelper/IntelliTriangulation.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_intelli_render_settings_8h_source.html">IntelliHelper/IntelliRenderSettings.h</a>&quot;</code><br />
</div>
<p><a href="_intelli_image_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_intelli_image.html">IntelliImage</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An abstract class which manages the basic <a class="el" href="class_intelli_image.html" title="An abstract class which manages the basic IntelliImage operations.">IntelliImage</a> operations. <a href="class_intelli_image.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_8db5f55022e7670536cbc9a6a1d6f01c.html">intelliphoto</a></li><li class="navelem"><a class="el" href="dir_83a4347d11f2ba6343d546ab133722d2.html">src</a></li><li class="navelem"><a class="el" href="dir_544f9dcb748f922e4bb3be2540380bf2.html">Image</a></li><li class="navelem"><a class="el" href="_intelli_image_8h.html">IntelliImage.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,8 @@
var _intelli_image_8h =
[
[ "IntelliImage", "class_intelli_image.html", "class_intelli_image" ],
[ "ImageType", "_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0", [
[ "Raster_Image", "_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0a80e1612d2117f2b25530317279ffe7b3", null ],
[ "Shaped_Image", "_intelli_image_8h.html#a3154c405c975616503bac23f51b78fc0ab7e2d2c1c171e5a0e0b6b548449df79d", null ]
] ]
];

View File

@@ -0,0 +1,43 @@
digraph "intelliphoto/src/Image/IntelliImage.h"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="intelliphoto/src/Image\l/IntelliImage.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="intelliphoto/src/Image\l/IntelliImage.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_image_8cpp.html",tooltip=" "];
Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="intelliphoto/src/Image\l/IntelliRasterImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_raster_image_8h.html",tooltip=" "];
Node3 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="intelliphoto/src/Image\l/IntelliRasterImage.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_raster_image_8cpp.html",tooltip=" "];
Node3 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="intelliphoto/src/Image\l/IntelliShapedImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_shaped_image_8h.html",tooltip=" "];
Node5 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node6 [label="intelliphoto/src/Image\l/IntelliShapedImage.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_shaped_image_8cpp.html",tooltip=" "];
Node5 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 [label="intelliphoto/src/Layer\l/PaintingArea.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8h.html",tooltip=" "];
Node7 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node8 [label="intelliphoto/src/GUI\l/IntelliPhotoGui.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_photo_gui_8cpp.html",tooltip=" "];
Node7 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node9 [label="intelliphoto/src/Layer\l/PaintingArea.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8cpp.html",tooltip=" "];
Node7 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 [label="intelliphoto/src/Tool\l/IntelliTool.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8cpp.html",tooltip=" "];
Node7 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 [label="intelliphoto/src/Tool\l/IntelliToolCircle.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_circle_8cpp.html",tooltip=" "];
Node7 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node12 [label="intelliphoto/src/Tool\l/IntelliToolFloodFill.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_flood_fill_8cpp.html",tooltip=" "];
Node7 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node13 [label="intelliphoto/src/Tool\l/IntelliToolLine.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_line_8cpp.html",tooltip=" "];
Node7 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node14 [label="intelliphoto/src/Tool\l/IntelliToolPen.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_pen_8cpp.html",tooltip=" "];
Node7 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node15 [label="intelliphoto/src/Tool\l/IntelliToolPlain.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_plain_8cpp.html",tooltip=" "];
Node7 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node16 [label="intelliphoto/src/Tool\l/IntelliToolPolygon.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_polygon_8cpp.html",tooltip=" "];
Node7 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node17 [label="intelliphoto/src/Tool\l/IntelliToolRectangle.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_rectangle_8cpp.html",tooltip=" "];
Node5 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
}

View File

@@ -0,0 +1,25 @@
digraph "intelliphoto/src/Image/IntelliImage.h"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="intelliphoto/src/Image\l/IntelliImage.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="QImage",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="QSize",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node6 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 [label="vector",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node1 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node8 [label="IntelliHelper/IntelliTriangulation.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_triangulation_8h.html",tooltip=" "];
Node8 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node8 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node9 [label="IntelliHelper/IntelliRender\lSettings.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_render_settings_8h.html",tooltip=" "];
}

View File

@@ -0,0 +1,208 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IntelliPhoto: intelliphoto/src/Image/IntelliImage.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">IntelliPhoto
&#160;<span id="projectnumber">0.5</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_intelli_image_8h_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">IntelliImage.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="_intelli_image_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef INTELLIIMAGE_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define INTELLIIMAGE_H</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160; </div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;QImage&gt;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;QPoint&gt;</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &lt;QColor&gt;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &lt;QSize&gt;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &lt;QWidget&gt;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; </div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_intelli_triangulation_8h.html">IntelliHelper/IntelliTriangulation.h</a>&quot;</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_intelli_render_settings_8h.html">IntelliHelper/IntelliRenderSettings.h</a>&quot;</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; </div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keyword">class </span><a class="code" href="class_intelli_tool.html">IntelliTool</a>;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; </div>
<div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="class_intelli_image.html"> 19</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_intelli_image.html">IntelliImage</a> {</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword">friend</span> <a class="code" href="class_intelli_tool.html">IntelliTool</a>;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="class_intelli_image.html#a5274ce9fcdcb2659c148e7ff916b680e"> 26</a></span>&#160;<span class="keyword">enum class</span> <a class="code" href="class_intelli_image.html#a5274ce9fcdcb2659c148e7ff916b680e">ImageType</a> {</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <a class="code" href="class_intelli_image.html#a5274ce9fcdcb2659c148e7ff916b680eadd5823fd73c42c0154fa2abbd70283b9">RASTERIMAGE</a>,</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <a class="code" href="class_intelli_image.html#a5274ce9fcdcb2659c148e7ff916b680eac065b60ec4cf443808263527bdc0df37">SHAPEDIMAGE</a></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;};</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_intelli_image.html#a177403ab9585d4ba31984a644c54d310">resizeImage</a>(QImage*image, <span class="keyword">const</span> QSize &amp;newSize);</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2"> 37</a></span>&#160;QImage <a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>;</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; </div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="class_intelli_image.html#ac460f75e1fa7e44b00a65e7fddac5b80"> 42</a></span>&#160;<a class="code" href="class_intelli_image.html#a5274ce9fcdcb2659c148e7ff916b680e">ImageType</a> <a class="code" href="class_intelli_image.html#ac460f75e1fa7e44b00a65e7fddac5b80">TypeOfImage</a>;</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; </div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_intelli_image.html#adade0f6990152f09d953067a51511b9c"> 47</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_intelli_image.html#adade0f6990152f09d953067a51511b9c">fastRenderer</a>;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; </div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<a class="code" href="class_intelli_image.html#a2c6632ff35ee0a7094a8a289eb3a8652">IntelliImage</a>(<span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, <span class="keywordtype">bool</span> fastRendererOn);</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword">virtual</span> <a class="code" href="class_intelli_image.html#ac398bfa9ddd3185508a1e36ee15d80cc">~IntelliImage</a>() = 0;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; </div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_intelli_image.html#af3c859f5c409e37051edfd9e9fbca056">drawPixel</a>(<span class="keyword">const</span> QPoint &amp;p1, <span class="keyword">const</span> QColor&amp; color);</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31">drawLine</a>(<span class="keyword">const</span> QPoint &amp;p1, <span class="keyword">const</span> QPoint&amp; p2, <span class="keyword">const</span> QColor&amp; color, <span class="keyword">const</span> <span class="keywordtype">int</span>&amp; penWidth);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; </div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_intelli_image.html#a2e787f1b333b59401643936ebb3dcfe1">drawPoint</a>(<span class="keyword">const</span> QPoint &amp;p1, <span class="keyword">const</span> QColor&amp; color, <span class="keyword">const</span> <span class="keywordtype">int</span>&amp; penWidth);</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; </div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_intelli_image.html#a6be622810dc2bc756054bb5769becb06">drawPlain</a>(<span class="keyword">const</span> QColor&amp; color);</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; </div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword">virtual</span> QImage <a class="code" href="class_intelli_image.html#a21c7e65b59a26db45aac3880133ef21d">getDisplayable</a>(<span class="keyword">const</span> QSize&amp; displaySize, <span class="keywordtype">int</span> alpha) = 0;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; </div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="keyword">virtual</span> QImage <a class="code" href="class_intelli_image.html#a21c7e65b59a26db45aac3880133ef21d">getDisplayable</a>(<span class="keywordtype">int</span> alpha=255) = 0;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; </div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="keyword">virtual</span> <a class="code" href="class_intelli_image.html">IntelliImage</a>* <a class="code" href="class_intelli_image.html#af6381067bdf565669f856bb589008ae9">getDeepCopy</a>() = 0;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; </div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2">calculateVisiblity</a>() = 0;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; </div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_intelli_image.html#aa4b3f4631bd972456917275afb9fd309">setPolygon</a>(<span class="keyword">const</span> std::vector&lt;QPoint&gt;&amp; polygonData) = 0;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; </div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="class_intelli_image.html#aaf9f3e8db8666850024bee9aad9966ba"> 130</a></span>&#160;<span class="keyword">virtual</span> std::vector&lt;QPoint&gt; <a class="code" href="class_intelli_image.html#aaf9f3e8db8666850024bee9aad9966ba">getPolygonData</a>(){</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">return</span> std::vector&lt;QPoint&gt;();</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;}</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; </div>
<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="class_intelli_image.html#af6b09c8d1d6b54a7e8a4e7286f3e503f"> 134</a></span>&#160;<span class="keyword">virtual</span> <a class="code" href="class_intelli_image.html#a5274ce9fcdcb2659c148e7ff916b680e">ImageType</a> <a class="code" href="class_intelli_image.html#af6b09c8d1d6b54a7e8a4e7286f3e503f">getTypeOfImage</a>(){</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_intelli_image.html#ac460f75e1fa7e44b00a65e7fddac5b80">TypeOfImage</a>;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;}</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; </div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_intelli_image.html#ae231800aba38c96074bbe9bb6e341d4e">loadImage</a>(<span class="keyword">const</span> QString &amp;filePath);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; </div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="keyword">virtual</span> QColor <a class="code" href="class_intelli_image.html#a4576ebb6d863321c816293d7b7f9fd3f">getPixelColor</a>(QPoint&amp; point);</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; </div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_intelli_image.html#ae4dbaefabce4ec5bec37f5b95e2f62e2">updateRendererSetting</a>(<span class="keywordtype">bool</span> fastRendererOn);</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; </div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="keyword">virtual</span> QImage <a class="code" href="class_intelli_image.html#ad66fbe380ffe0e073a8cd760f8285fe3">getImageData</a>();</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; </div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;};</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; </div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aclass_intelli_image_html_af8eddbd9aa54c8d37590d1d4bf8dce31"><div class="ttname"><a href="class_intelli_image.html#af8eddbd9aa54c8d37590d1d4bf8dce31">IntelliImage::drawLine</a></div><div class="ttdeci">virtual void drawLine(const QPoint &amp;p1, const QPoint &amp;p2, const QColor &amp;color, const int &amp;penWidth)</div><div class="ttdoc">A function that draws A Line between two given Points in a given color.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8cpp_source.html#l00088">IntelliImage.cpp:88</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_ac398bfa9ddd3185508a1e36ee15d80cc"><div class="ttname"><a href="class_intelli_image.html#ac398bfa9ddd3185508a1e36ee15d80cc">IntelliImage::~IntelliImage</a></div><div class="ttdeci">virtual ~IntelliImage()=0</div><div class="ttdoc">An Abstract Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8cpp_source.html#l00018">IntelliImage.cpp:18</a></div></div>
<div class="ttc" id="a_intelli_render_settings_8h_html"><div class="ttname"><a href="_intelli_render_settings_8h.html">IntelliRenderSettings.h</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_af3c859f5c409e37051edfd9e9fbca056"><div class="ttname"><a href="class_intelli_image.html#af3c859f5c409e37051edfd9e9fbca056">IntelliImage::drawPixel</a></div><div class="ttdeci">virtual void drawPixel(const QPoint &amp;p1, const QColor &amp;color)</div><div class="ttdoc">A funtcion used to draw a pixel on the Image with the given Color.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8cpp_source.html#l00055">IntelliImage.cpp:55</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_a21c7e65b59a26db45aac3880133ef21d"><div class="ttname"><a href="class_intelli_image.html#a21c7e65b59a26db45aac3880133ef21d">IntelliImage::getDisplayable</a></div><div class="ttdeci">virtual QImage getDisplayable(const QSize &amp;displaySize, int alpha)=0</div><div class="ttdoc">A function returning the displayable ImageData in a requested transparence and size.</div></div>
<div class="ttc" id="aclass_intelli_image_html_af6b09c8d1d6b54a7e8a4e7286f3e503f"><div class="ttname"><a href="class_intelli_image.html#af6b09c8d1d6b54a7e8a4e7286f3e503f">IntelliImage::getTypeOfImage</a></div><div class="ttdeci">virtual ImageType getTypeOfImage()</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8h_source.html#l00134">IntelliImage.h:134</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_aaf9f3e8db8666850024bee9aad9966ba"><div class="ttname"><a href="class_intelli_image.html#aaf9f3e8db8666850024bee9aad9966ba">IntelliImage::getPolygonData</a></div><div class="ttdeci">virtual std::vector&lt; QPoint &gt; getPolygonData()</div><div class="ttdoc">A function that returns the Polygondata if existent.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8h_source.html#l00130">IntelliImage.h:130</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_a2c6632ff35ee0a7094a8a289eb3a8652"><div class="ttname"><a href="class_intelli_image.html#a2c6632ff35ee0a7094a8a289eb3a8652">IntelliImage::IntelliImage</a></div><div class="ttdeci">IntelliImage(int width, int height, bool fastRendererOn)</div><div class="ttdoc">The Construcor of the IntelliImage. Given the Image dimensions.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8cpp_source.html#l00005">IntelliImage.cpp:5</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_a2e787f1b333b59401643936ebb3dcfe1"><div class="ttname"><a href="class_intelli_image.html#a2e787f1b333b59401643936ebb3dcfe1">IntelliImage::drawPoint</a></div><div class="ttdeci">virtual void drawPoint(const QPoint &amp;p1, const QColor &amp;color, const int &amp;penWidth)</div><div class="ttdoc">A.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8cpp_source.html#l00072">IntelliImage.cpp:72</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_ae4dbaefabce4ec5bec37f5b95e2f62e2"><div class="ttname"><a href="class_intelli_image.html#ae4dbaefabce4ec5bec37f5b95e2f62e2">IntelliImage::updateRendererSetting</a></div><div class="ttdeci">virtual void updateRendererSetting(bool fastRendererOn)</div><div class="ttdoc">updateRendererSetting updates the existing image format to the new format.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8cpp_source.html#l00127">IntelliImage.cpp:127</a></div></div>
<div class="ttc" id="aclass_intelli_tool_html"><div class="ttname"><a href="class_intelli_tool.html">IntelliTool</a></div><div class="ttdoc">An abstract class that manages the basic events, like mouse clicks or scrolls events.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_tool_8h_source.html#l00014">IntelliTool.h:14</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_a5274ce9fcdcb2659c148e7ff916b680eac065b60ec4cf443808263527bdc0df37"><div class="ttname"><a href="class_intelli_image.html#a5274ce9fcdcb2659c148e7ff916b680eac065b60ec4cf443808263527bdc0df37">IntelliImage::ImageType::SHAPEDIMAGE</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_ad66fbe380ffe0e073a8cd760f8285fe3"><div class="ttname"><a href="class_intelli_image.html#ad66fbe380ffe0e073a8cd760f8285fe3">IntelliImage::getImageData</a></div><div class="ttdeci">virtual QImage getImageData()</div><div class="ttdoc">getImageData returns the data of the current image.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8cpp_source.html#l00123">IntelliImage.cpp:123</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_a177403ab9585d4ba31984a644c54d310"><div class="ttname"><a href="class_intelli_image.html#a177403ab9585d4ba31984a644c54d310">IntelliImage::resizeImage</a></div><div class="ttdeci">void resizeImage(QImage *image, const QSize &amp;newSize)</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8cpp_source.html#l00037">IntelliImage.cpp:37</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_ac460f75e1fa7e44b00a65e7fddac5b80"><div class="ttname"><a href="class_intelli_image.html#ac460f75e1fa7e44b00a65e7fddac5b80">IntelliImage::TypeOfImage</a></div><div class="ttdeci">ImageType TypeOfImage</div><div class="ttdoc">The Type, an Image is.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8h_source.html#l00042">IntelliImage.h:42</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_a4576ebb6d863321c816293d7b7f9fd3f"><div class="ttname"><a href="class_intelli_image.html#a4576ebb6d863321c816293d7b7f9fd3f">IntelliImage::getPixelColor</a></div><div class="ttdeci">virtual QColor getPixelColor(QPoint &amp;point)</div><div class="ttdoc">A function that returns the pixelcolor at a certain point.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8cpp_source.html#l00115">IntelliImage.cpp:115</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_adade0f6990152f09d953067a51511b9c"><div class="ttname"><a href="class_intelli_image.html#adade0f6990152f09d953067a51511b9c">IntelliImage::fastRenderer</a></div><div class="ttdeci">bool fastRenderer</div><div class="ttdoc">fastRenderer is the flag that represents the usage of 8bit pictures.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8h_source.html#l00047">IntelliImage.h:47</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_a5274ce9fcdcb2659c148e7ff916b680eadd5823fd73c42c0154fa2abbd70283b9"><div class="ttname"><a href="class_intelli_image.html#a5274ce9fcdcb2659c148e7ff916b680eadd5823fd73c42c0154fa2abbd70283b9">IntelliImage::ImageType::RASTERIMAGE</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_a2431be82e9e85dd34b62a7f7cba053c2"><div class="ttname"><a href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">IntelliImage::imageData</a></div><div class="ttdeci">QImage imageData</div><div class="ttdoc">The underlying image data.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8h_source.html#l00037">IntelliImage.h:37</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_ae231800aba38c96074bbe9bb6e341d4e"><div class="ttname"><a href="class_intelli_image.html#ae231800aba38c96074bbe9bb6e341d4e">IntelliImage::loadImage</a></div><div class="ttdeci">virtual bool loadImage(const QString &amp;filePath)</div><div class="ttdoc">A function that loads and sclaes an image to the fitting dimensions.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8cpp_source.html#l00022">IntelliImage.cpp:22</a></div></div>
<div class="ttc" id="aclass_intelli_image_html"><div class="ttname"><a href="class_intelli_image.html">IntelliImage</a></div><div class="ttdoc">An abstract class which manages the basic IntelliImage operations.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8h_source.html#l00019">IntelliImage.h:19</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_af6381067bdf565669f856bb589008ae9"><div class="ttname"><a href="class_intelli_image.html#af6381067bdf565669f856bb589008ae9">IntelliImage::getDeepCopy</a></div><div class="ttdeci">virtual IntelliImage * getDeepCopy()=0</div><div class="ttdoc">A function that copys all that returns a [allocated] Image.</div></div>
<div class="ttc" id="aclass_intelli_image_html_aebbced93f4744fad81b7f141b21f4ab2"><div class="ttname"><a href="class_intelli_image.html#aebbced93f4744fad81b7f141b21f4ab2">IntelliImage::calculateVisiblity</a></div><div class="ttdeci">virtual void calculateVisiblity()=0</div><div class="ttdoc">An abstract function that calculates the visiblity of the Image data if needed.</div></div>
<div class="ttc" id="a_intelli_triangulation_8h_html"><div class="ttname"><a href="_intelli_triangulation_8h.html">IntelliTriangulation.h</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_a5274ce9fcdcb2659c148e7ff916b680e"><div class="ttname"><a href="class_intelli_image.html#a5274ce9fcdcb2659c148e7ff916b680e">IntelliImage::ImageType</a></div><div class="ttdeci">ImageType</div><div class="ttdoc">The Types, which an Image can be.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8h_source.html#l00026">IntelliImage.h:26</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_a6be622810dc2bc756054bb5769becb06"><div class="ttname"><a href="class_intelli_image.html#a6be622810dc2bc756054bb5769becb06">IntelliImage::drawPlain</a></div><div class="ttdeci">virtual void drawPlain(const QColor &amp;color)</div><div class="ttdoc">A function that clears the whole image in a given Color.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8cpp_source.html#l00105">IntelliImage.cpp:105</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_aa4b3f4631bd972456917275afb9fd309"><div class="ttname"><a href="class_intelli_image.html#aa4b3f4631bd972456917275afb9fd309">IntelliImage::setPolygon</a></div><div class="ttdeci">virtual void setPolygon(const std::vector&lt; QPoint &gt; &amp;polygonData)=0</div><div class="ttdoc">An abstract function that sets the data of the visible Polygon, if needed.</div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_8db5f55022e7670536cbc9a6a1d6f01c.html">intelliphoto</a></li><li class="navelem"><a class="el" href="dir_83a4347d11f2ba6343d546ab133722d2.html">src</a></li><li class="navelem"><a class="el" href="dir_544f9dcb748f922e4bb3be2540380bf2.html">Image</a></li><li class="navelem"><a class="el" href="_intelli_image_8h.html">IntelliImage.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,109 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IntelliPhoto: intelliphoto/src/GUI/IntelliPhotoGui.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">IntelliPhoto
&#160;<span id="projectnumber">0.5</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_intelli_photo_gui_8cpp.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">IntelliPhotoGui.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_intelli_photo_gui_8h_source.html">IntelliPhotoGui.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_painting_area_8h_source.html">Layer/PaintingArea.h</a>&quot;</code><br />
</div>
<p><a href="_intelli_photo_gui_8cpp_source.html">Go to the source code of this file.</a></p>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_8db5f55022e7670536cbc9a6a1d6f01c.html">intelliphoto</a></li><li class="navelem"><a class="el" href="dir_83a4347d11f2ba6343d546ab133722d2.html">src</a></li><li class="navelem"><a class="el" href="dir_5dabb14988a75c922e285f444641a133.html">GUI</a></li><li class="navelem"><a class="el" href="_intelli_photo_gui_8cpp.html">IntelliPhotoGui.cpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,5 @@
var _intelli_photo_gui_8cpp =
[
[ "slotCreateFloodFillTool", "_intelli_photo_gui_8cpp.html#ac2f8320173dfaf943bb39e39cb1a23e5", null ],
[ "slotCreatePenTool", "_intelli_photo_gui_8cpp.html#a30169da42b55e0339af0d28dfc8ccd40", null ]
];

View File

@@ -0,0 +1,74 @@
digraph "intelliphoto/src/GUI/IntelliPhotoGui.cpp"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="intelliphoto/src/GUI\l/IntelliPhotoGui.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="IntelliPhotoGui.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_photo_gui_8h.html",tooltip=" "];
Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="QtWidgets",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="QPixmap",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="QList",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node6 [label="QMainWindow",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 [label="QGridLayout",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node2 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node8 [label="QPushButton",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node2 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node9 [label="QTextEdit",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node2 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 [label="QLabel",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node2 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 [label="QLineEdit",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node1 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node12 [label="Layer/PaintingArea.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8h.html",tooltip=" "];
Node12 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node13 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node12 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node14 [label="QImage",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node12 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node15 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node12 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node16 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node12 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node12 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node12 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node17 [label="Image/IntelliImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_image_8h.html",tooltip=" "];
Node17 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node17 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node17 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node17 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node18 [label="QSize",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node17 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node17 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node19 [label="vector",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node17 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node20 [label="IntelliHelper/IntelliTriangulation.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_triangulation_8h.html",tooltip=" "];
Node20 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node20 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node17 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node21 [label="IntelliHelper/IntelliRender\lSettings.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_render_settings_8h.html",tooltip=" "];
Node12 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node22 [label="Image/IntelliRasterImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_raster_image_8h.html",tooltip=" "];
Node22 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node12 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node23 [label="Image/IntelliShapedImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_shaped_image_8h.html",tooltip=" "];
Node23 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node23 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node12 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node24 [label="Tool/IntelliTool.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8h.html",tooltip=" "];
Node24 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node25 [label="IntelliHelper/IntelliColor\lPicker.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_color_picker_8h.html",tooltip=" "];
Node25 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node25 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node25 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node26 [label="QColorDialog",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node24 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node27 [label="IntelliHelper/IntelliToolsettings.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_toolsettings_8h.html",tooltip=" "];
Node24 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node12 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
}

View File

@@ -0,0 +1,844 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IntelliPhoto: intelliphoto/src/GUI/IntelliPhotoGui.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">IntelliPhoto
&#160;<span id="projectnumber">0.5</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_intelli_photo_gui_8cpp_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">IntelliPhotoGui.cpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="_intelli_photo_gui_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// ---------- IntelliPhotoGui.cpp ----------</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160; </div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_intelli_photo_gui_8h.html">IntelliPhotoGui.h</a>&quot;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_painting_area_8h.html">Layer/PaintingArea.h</a>&quot;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; </div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// IntelliPhotoGui constructor</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_intelli_photo_gui.html#ad2aaec3c1517a9aaa461b54e341b97e0"> 7</a></span>&#160;<a class="code" href="class_intelli_photo_gui.html#ad2aaec3c1517a9aaa461b54e341b97e0">IntelliPhotoGui::IntelliPhotoGui</a>(){</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <span class="comment">// create Gui elements and lay them out</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; createGui();</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="comment">// Create actions</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; createActions();</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="comment">// create Menus</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; createMenus();</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="comment">// set style of the gui</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; setIntelliStyle();</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="comment">// Size the app</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; resize(600,600);</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; showMaximized();</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; setDefaultToolValue();</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;}</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// User tried to close the app</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="class_intelli_photo_gui.html#a2cf48070236ae8b35245e7f30482ef13"> 23</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_intelli_photo_gui.html#a2cf48070236ae8b35245e7f30482ef13">IntelliPhotoGui::closeEvent</a>(QCloseEvent*event){</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="comment">// If they try to close maybeSave() returns true</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="comment">// if no changes have been made and the app closes</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordflow">if</span> (maybeSave()) {</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">event</span>-&gt;accept();</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="comment">// If there have been changes ignore the event</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">event</span>-&gt;ignore();</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; }</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;}</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">// Check if the current image has been changed and then</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// open a dialog to open a file</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotOpen(){</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="comment">// Check if changes have been made since last save</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="comment">// maybeSave() returns true if no changes have been made</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">if</span> (maybeSave()) {</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; </div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="comment">// Get the file to open from a dialog</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="comment">// tr sets the window title to Open File</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="comment">// QDir opens the current dirctory</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; QString fileName = QFileDialog::getOpenFileName(<span class="keyword">this</span>,</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; tr(<span class="stringliteral">&quot;Open File&quot;</span>), QDir::currentPath(), <span class="keyword">nullptr</span>, <span class="keyword">nullptr</span>, QFileDialog::DontUseNativeDialog);</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; </div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="comment">// If we have a file name load the image and place</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="comment">// it in the paintingArea</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span> (!fileName.isEmpty())</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; paintingArea-&gt;<a class="code" href="class_painting_area.html#a88c7e759aa8375a56129791645f46ea5">open</a>(fileName);</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;}</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; </div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment">// Called when the user clicks Save As in the menu</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotSave(){</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="comment">// A QAction represents the action of the user clicking</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; QAction*action = qobject_cast&lt;QAction*&gt;(sender());</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="comment">// Stores the array of bytes of the users data</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; QByteArray fileFormat = action-&gt;data().toByteArray();</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; </div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="comment">// Pass it to be saved</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; saveFile(fileFormat);</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;}</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; </div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment">// Opens a dialog that allows the user to create a New Layer</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotCreateNewLayer(){</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">// Stores button value</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordtype">bool</span> ok1, ok2;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">// &quot;New Layer&quot; is the title of the window</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="comment">// the next tr is the text to display</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="comment">// Define the standard Value, min, max, step and ok button</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">int</span> width = QInputDialog::getInt(<span class="keyword">this</span>, tr(<span class="stringliteral">&quot;New Layer&quot;</span>),</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; tr(<span class="stringliteral">&quot;Width:&quot;</span>),</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; 200,1, 500, 1, &amp;ok1);</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordtype">int</span> height = QInputDialog::getInt(<span class="keyword">this</span>, tr(<span class="stringliteral">&quot;New Layer&quot;</span>),</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; tr(<span class="stringliteral">&quot;Height:&quot;</span>),</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; 200,1, 500, 1, &amp;ok2);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="comment">// Create New Layer</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">if</span> (ok1&amp;&amp;ok2)</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordtype">int</span> layer = paintingArea-&gt;<a class="code" href="class_painting_area.html#a6e9207612cef104d39013564696fe989">addLayer</a>(width,height,0,0);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="class_intelli_photo_gui.html#a1dbef8d4688227aa9455aea52db00bf4">UpdateGui</a>();</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;}</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; </div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment">// Opens a dialog that allows the user to delete a Layer</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotDeleteLayer(){</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// Stores button value</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">bool</span> ok;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; </div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// &quot;delete Layer&quot; is the title of the window</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">// the next tr is the text to display</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="comment">// Define the standard Value, min, max, step and ok button</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordtype">int</span> layerNumber = QInputDialog::getInt(<span class="keyword">this</span>, tr(<span class="stringliteral">&quot;delete Layer&quot;</span>),</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; tr(<span class="stringliteral">&quot;Number:&quot;</span>),</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; paintingArea-&gt;<a class="code" href="class_painting_area.html#a24280454ebb80db7feba2fd621513353">getNumberOfActiveLayer</a>(),0, 500, 1, &amp;ok);</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// Create New Layer</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span> (ok) {</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; paintingArea-&gt;<a class="code" href="class_painting_area.html#a2382ebf8c31dee36cb714f34a18b71e4">deleteLayer</a>(layerNumber);</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="class_intelli_photo_gui.html#a1dbef8d4688227aa9455aea52db00bf4">UpdateGui</a>();</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;}</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; </div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotSetActiveAlpha(){</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="comment">// Stores button value</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordtype">bool</span> ok1, ok2;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; </div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// &quot;Layer to set on&quot; is the title of the window</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="comment">// the next tr is the text to display</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// Define the standard Value, min, max, step and ok button</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordtype">int</span> layer = QInputDialog::getInt(<span class="keyword">this</span>, tr(<span class="stringliteral">&quot;Layer to set on&quot;</span>),</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; tr(<span class="stringliteral">&quot;Layer:&quot;</span>),</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; -1,-1,100,1, &amp;ok1);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="comment">// &quot;New Alpha&quot; is the title of the window</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordtype">int</span> alpha = QInputDialog::getInt(<span class="keyword">this</span>, tr(<span class="stringliteral">&quot;New Alpha&quot;</span>),</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; tr(<span class="stringliteral">&quot;Alpha:&quot;</span>),</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; 255,0, 255, 1, &amp;ok2);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">if</span> (ok1&amp;&amp;ok2)</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; {</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; paintingArea-&gt;<a class="code" href="class_painting_area.html#a6c7e0865e684ae1089ee283b4399d055">setLayerAlpha</a>(layer,alpha);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="class_intelli_photo_gui.html#a1dbef8d4688227aa9455aea52db00bf4">UpdateGui</a>();</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;}</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; </div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotPositionMoveUp(){</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; paintingArea-&gt;<a class="code" href="class_painting_area.html#ac6d089f4357b22d9a9906fd4771de3e7">movePositionActive</a>(0,-20);</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; update();</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;}</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; </div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotPositionMoveDown(){</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; paintingArea-&gt;<a class="code" href="class_painting_area.html#ac6d089f4357b22d9a9906fd4771de3e7">movePositionActive</a>(0,20);</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; update();</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;}</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; </div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotPositionMoveLeft(){</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; paintingArea-&gt;<a class="code" href="class_painting_area.html#ac6d089f4357b22d9a9906fd4771de3e7">movePositionActive</a>(-20,0);</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; update();</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;}</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; </div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotPositionMoveRight(){</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; paintingArea-&gt;<a class="code" href="class_painting_area.html#ac6d089f4357b22d9a9906fd4771de3e7">movePositionActive</a>(20,0);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; update();</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;}</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; </div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotMoveLayerUp(){</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; paintingArea-&gt;<a class="code" href="class_painting_area.html#ae05f6893fb44bfcb34018573a609cd1a">moveActiveLayer</a>(1);</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; update();</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;}</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; </div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotMoveLayerDown(){</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; paintingArea-&gt;<a class="code" href="class_painting_area.html#ae05f6893fb44bfcb34018573a609cd1a">moveActiveLayer</a>(-1);</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; update();</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;}</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; </div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotClearActiveLayer(){</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="comment">// Stores button value</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordtype">bool</span> ok1, ok2, ok3, ok4;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; </div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">// &quot;Red Input&quot; is the title of the window</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="comment">// the next tr is the text to display</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="comment">// Define the standard Value, min, max, step and ok button</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">int</span> red = QInputDialog::getInt(<span class="keyword">this</span>, tr(<span class="stringliteral">&quot;Red Input&quot;</span>),</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; tr(<span class="stringliteral">&quot;Red:&quot;</span>),</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; 255,0, 255,1, &amp;ok1);</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">// &quot;Green Input&quot; is the title of the window</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordtype">int</span> green = QInputDialog::getInt(<span class="keyword">this</span>, tr(<span class="stringliteral">&quot;Green Input&quot;</span>),</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; tr(<span class="stringliteral">&quot;Green:&quot;</span>),</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; 255,0, 255, 1, &amp;ok2);</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">// &quot;Blue Input&quot; is the title of the window</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordtype">int</span> blue = QInputDialog::getInt(<span class="keyword">this</span>, tr(<span class="stringliteral">&quot;Blue Input&quot;</span>),</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; tr(<span class="stringliteral">&quot;Blue:&quot;</span>),</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; 255,0, 255, 1, &amp;ok3);</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="comment">// &quot;Alpha Input&quot; is the title of the window</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordtype">int</span> alpha = QInputDialog::getInt(<span class="keyword">this</span>, tr(<span class="stringliteral">&quot;Alpha Input&quot;</span>),</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; tr(<span class="stringliteral">&quot;Alpha:&quot;</span>),</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; 255,0, 255, 1, &amp;ok4);</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">if</span> (ok1&amp;&amp;ok2&amp;&amp;ok3&amp;&amp;ok4)</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; {</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; paintingArea-&gt;<a class="code" href="class_painting_area.html#aeb5eb394b979ea90f2be9849fdda1774">floodFill</a>(red, green, blue, alpha);</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="class_intelli_photo_gui.html#a1dbef8d4688227aa9455aea52db00bf4">UpdateGui</a>();</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;}</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; </div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotSetActiveLayer(){</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="comment">// Stores button value</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordtype">bool</span> ok1;</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; </div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="comment">// &quot;Layer to set on&quot; is the title of the window</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="comment">// the next tr is the text to display</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="comment">// Define the standard Value, min, max, step and ok button</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordtype">int</span> layer = QInputDialog::getInt(<span class="keyword">this</span>, tr(<span class="stringliteral">&quot;Layer to set on&quot;</span>),</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; tr(<span class="stringliteral">&quot;Layer:&quot;</span>),</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; -1,0,255,1, &amp;ok1);</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">if</span> (ok1)</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; {</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; paintingArea-&gt;<a class="code" href="class_painting_area.html#a79eb059829f27e8cdb3a54c5cd3d12c9">setLayerActive</a>(layer);</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="class_intelli_photo_gui.html#a1dbef8d4688227aa9455aea52db00bf4">UpdateGui</a>();</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;}</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; </div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotSetFirstColor(){</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; paintingArea-&gt;<a class="code" href="class_painting_area.html#a4735d4cf1dc58a9096d904e74c39c4df">colorPickerSetFirstColor</a>();</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="class_intelli_photo_gui.html#a1dbef8d4688227aa9455aea52db00bf4">UpdateGui</a>();</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;}</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; </div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotSetSecondColor(){</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; paintingArea-&gt;<a class="code" href="class_painting_area.html#ae261acaaa346610dfed489dbac17e789">colorPickerSetSecondColor</a>();</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="class_intelli_photo_gui.html#a1dbef8d4688227aa9455aea52db00bf4">UpdateGui</a>();</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;}</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; </div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotSwapColor(){</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; paintingArea-&gt;<a class="code" href="class_painting_area.html#acff4563d006fda491469bd41778d07eb">colorPickerSwapColors</a>();</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="class_intelli_photo_gui.html#a1dbef8d4688227aa9455aea52db00bf4">UpdateGui</a>();</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;}</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; </div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotCreatePenTool(){</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; PenButton-&gt;setChecked(<span class="keyword">true</span>);</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; paintingArea-&gt;<a class="code" href="class_painting_area.html#a96c6248e343e44b61cf2625cb6d21353">createPenTool</a>();</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;}</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; </div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotCreatePlainTool(){</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; PlainButton-&gt;setChecked(<span class="keyword">true</span>);</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; paintingArea-&gt;<a class="code" href="class_painting_area.html#a3de83443d2d5cf460ff48d0602070938">createPlainTool</a>();</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;}</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; </div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotCreateLineTool(){</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; LineButton-&gt;setChecked(<span class="keyword">true</span>);</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; paintingArea-&gt;<a class="code" href="class_painting_area.html#a240c33a7875addac86080cdfb0db036a">createLineTool</a>();</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;}</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; </div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotCreateRectangleTool(){</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; RectangleButton-&gt;setChecked(<span class="keyword">true</span>);</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; paintingArea-&gt;<a class="code" href="class_painting_area.html#a5b04ce62ce024e307f54e0281f7ae4bd">createRectangleTool</a>();</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;}</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; </div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotCreateCircleTool(){</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; CircleButton-&gt;setChecked(<span class="keyword">true</span>);</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; paintingArea-&gt;<a class="code" href="class_painting_area.html#a2d9f4b3585f7dd1acb11f432ca503466">createCircleTool</a>();</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;}</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; </div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotCreatePolygonTool(){</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; PolygonButton-&gt;setChecked(<span class="keyword">true</span>);</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; paintingArea-&gt;<a class="code" href="class_painting_area.html#a13c2f94644bea9c2d3123d0b7898f34b">createPolygonTool</a>();</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;}</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; </div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotCreateFloodFillTool(){</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; FloodFillButton-&gt;setChecked(<span class="keyword">true</span>);</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; paintingArea-&gt;<a class="code" href="class_painting_area.html#a0b22e18069b524f3e75857d203baf256">createFloodFillTool</a>();</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;}</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; </div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="comment">// Open an about dialog</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotAboutDialog(){</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="comment">// Window title and text to display</span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; QMessageBox::about(<span class="keyword">this</span>, tr(<span class="stringliteral">&quot;About Painting&quot;</span>),</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; tr(<span class="stringliteral">&quot;&lt;p&gt;&lt;b&gt;IntelliPhoto&lt;/b&gt;Pretty basic editor.&lt;/p&gt;&quot;</span>));</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;}</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; </div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotEnterPressed(){</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; QString <span class="keywordtype">string</span> = EditLineWidth-&gt;text();</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">if</span>(<span class="keywordtype">string</span>.toInt() &gt; 50) {</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; EditLineWidth-&gt;setText(<span class="stringliteral">&quot;50&quot;</span>);</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; paintingArea-&gt;<a class="code" href="class_painting_area.html#abc2f798744f1dc805a651731eb1692ea">Toolsettings</a>.<a class="code" href="class_intelli_toolsettings.html#a906d37de6ee94b433d53fe3e598cc9fa">setLineWidth</a>(<span class="keywordtype">string</span>.toInt());</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordtype">string</span> = EditLineInnerAlpha-&gt;text();</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">if</span>(<span class="keywordtype">string</span>.toInt() &gt; 255) {</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; EditLineInnerAlpha-&gt;setText(<span class="stringliteral">&quot;255&quot;</span>);</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; }</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; paintingArea-&gt;<a class="code" href="class_painting_area.html#abc2f798744f1dc805a651731eb1692ea">Toolsettings</a>.<a class="code" href="class_intelli_toolsettings.html#a32f165c89190e40caf96abb916e6c876">setInnerAlpha</a>(<span class="keywordtype">string</span>.toInt());</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;}</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; </div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::slotResetTools(){</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; CircleButton-&gt;setChecked(<span class="keyword">false</span>);</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; FloodFillButton-&gt;setChecked(<span class="keyword">false</span>);</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; LineButton-&gt;setChecked(<span class="keyword">false</span>);</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; PenButton-&gt;setChecked(<span class="keyword">false</span>);</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; PlainButton-&gt;setChecked(<span class="keyword">false</span>);</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; PolygonButton-&gt;setChecked(<span class="keyword">false</span>);</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; RectangleButton-&gt;setChecked(<span class="keyword">false</span>);</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;}</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; </div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="comment">// Define menu actions that call functions</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::createActions(){</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="comment">// Get a list of the supported file formats</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="comment">// QImageWriter is used to write images to files</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">foreach</span> (QByteArray format, QImageWriter::supportedImageFormats()) {</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; QString text = tr(<span class="stringliteral">&quot;%1...&quot;</span>).arg(QString(format).toUpper());</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; </div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="comment">// Create an action for each file format</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; QAction*action = <span class="keyword">new</span> QAction(text, <span class="keyword">this</span>);</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; </div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="comment">// Set an action for each file format</span></div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; action-&gt;setData(format);</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; </div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="comment">// When clicked call IntelliPhotoGui::save()</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; connect(action, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotSave()));</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; </div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="comment">// Attach each file format option menu item to Save As</span></div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; actionSaveAs.append(action);</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; }</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; </div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="comment">//set exporter to actions</span></div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; QAction*pngSaveAction = <span class="keyword">new</span> QAction(<span class="stringliteral">&quot;PNG-8&quot;</span>, <span class="keyword">this</span>);</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; pngSaveAction-&gt;setData(<span class="stringliteral">&quot;PNG&quot;</span>);</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="comment">// When clicked call IntelliPhotoGui::save()</span></div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; connect(pngSaveAction, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotSave()));</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="comment">// Attach each PNG in save Menu</span></div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; actionSaveAs.append(pngSaveAction);</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; </div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="comment">// Create exit action and tie to IntelliPhotoGui::close()</span></div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; actionExit = <span class="keyword">new</span> QAction(tr(<span class="stringliteral">&quot;&amp;Exit&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; actionExit-&gt;setShortcuts(QKeySequence::Quit);</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; connect(actionExit, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(close()));</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; </div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; actionOpen = <span class="keyword">new</span> QAction(tr(<span class="stringliteral">&quot;&amp;Open&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; actionOpen-&gt;setShortcut(QKeySequence(Qt::CTRL + Qt::Key_O));</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; connect(actionOpen, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotOpen()));</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; </div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="comment">// Create New Layer action and tie to IntelliPhotoGui::newLayer()</span></div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; actionCreateNewLayer = <span class="keyword">new</span> QAction(tr(<span class="stringliteral">&quot;&amp;New Layer...&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; actionCreateNewLayer-&gt;setShortcut(QKeySequence(Qt::CTRL + Qt::Key_N));</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; connect(actionCreateNewLayer, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotCreateNewLayer()));</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; </div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="comment">// Delete New Layer action and tie to IntelliPhotoGui::deleteLayer()</span></div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; actionDeleteLayer = <span class="keyword">new</span> QAction(tr(<span class="stringliteral">&quot;&amp;Delete Layer...&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; connect(actionDeleteLayer, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotDeleteLayer()));</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; </div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; actionSetActiveLayer = <span class="keyword">new</span> QAction(tr(<span class="stringliteral">&quot;&amp;set Active&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; connect(actionSetActiveLayer, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotSetActiveLayer()));</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; </div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; actionSetActiveAlpha = <span class="keyword">new</span> QAction(tr(<span class="stringliteral">&quot;&amp;set Alpha&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; connect(actionSetActiveAlpha, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotSetActiveAlpha()));</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; </div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; actionMovePositionUp = <span class="keyword">new</span> QAction(tr(<span class="stringliteral">&quot;&amp;move Up&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; actionMovePositionUp-&gt;setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Up));</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; connect(actionMovePositionUp, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotPositionMoveUp()));</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; </div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; actionMovePositionDown = <span class="keyword">new</span> QAction(tr(<span class="stringliteral">&quot;&amp;move Down&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; actionMovePositionDown-&gt;setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Down));</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; connect(actionMovePositionDown, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotPositionMoveDown()));</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; </div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; actionMovePositionLeft = <span class="keyword">new</span> QAction(tr(<span class="stringliteral">&quot;&amp;move Left&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; actionMovePositionLeft-&gt;setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Left));</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; connect(actionMovePositionLeft, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotPositionMoveLeft()));</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; </div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; actionMovePositionRight = <span class="keyword">new</span> QAction(tr(<span class="stringliteral">&quot;&amp;move Right&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; actionMovePositionRight-&gt;setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Right));</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; connect(actionMovePositionRight, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotPositionMoveRight()));</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; </div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; actionMoveLayerUp = <span class="keyword">new</span> QAction(tr(<span class="stringliteral">&quot;&amp;move Layer Up&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; actionMoveLayerUp-&gt;setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_Up));</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; connect(actionMoveLayerUp, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotMoveLayerUp()));</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; </div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; actionMoveLayerDown= <span class="keyword">new</span> QAction(tr(<span class="stringliteral">&quot;&amp;move Layer Down&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; actionMoveLayerDown-&gt;setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_Down));</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; connect(actionMoveLayerDown, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotMoveLayerDown()));</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; </div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="comment">//Create Color Actions here</span></div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; actionColorPickerFirstColor = <span class="keyword">new</span> QAction(tr(<span class="stringliteral">&quot;&amp;Main&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; connect(actionColorPickerFirstColor, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotSetFirstColor()));</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; connect(FirstColorButton, SIGNAL(clicked()), <span class="keyword">this</span>, SLOT(slotSetFirstColor()));</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; </div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; actionColorPickerSecondColor = <span class="keyword">new</span> QAction(tr(<span class="stringliteral">&quot;&amp;Secondary&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; connect(actionColorPickerSecondColor, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotSetSecondColor()));</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; connect(SecondColorButton, SIGNAL(clicked()), <span class="keyword">this</span>, SLOT(slotSetSecondColor()));</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; </div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; actionColorSwap = <span class="keyword">new</span> QAction(tr(<span class="stringliteral">&quot;&amp;Switch&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; actionColorSwap-&gt;setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_S));</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; connect(actionColorSwap, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotSwapColor()));</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; connect(SwitchColorButton, SIGNAL(clicked()), <span class="keyword">this</span>, SLOT(slotSwapColor()));</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; </div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="comment">//Create Tool actions down here</span></div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; actionCreatePlainTool = <span class="keyword">new</span> QAction(tr(<span class="stringliteral">&quot;&amp;Plain&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; connect(actionCreatePlainTool, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotResetTools()));</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; connect(actionCreatePlainTool, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotCreatePlainTool()));</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; </div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; </div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; actionCreatePenTool = <span class="keyword">new</span> QAction(tr(<span class="stringliteral">&quot;&amp;Pen&quot;</span>),<span class="keyword">this</span>);</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; connect(actionCreatePenTool, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotResetTools()));</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; connect(actionCreatePenTool, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotCreatePenTool()));</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; </div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; actionCreateLineTool = <span class="keyword">new</span> QAction(tr(<span class="stringliteral">&quot;&amp;Line&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; connect(actionCreateLineTool, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotResetTools()));</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; connect(actionCreateLineTool, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotCreateLineTool()));</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; </div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; actionCreateCircleTool = <span class="keyword">new</span> QAction(tr(<span class="stringliteral">&quot;&amp;Circle&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; connect(actionCreateCircleTool, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotResetTools()));</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; connect(actionCreateCircleTool, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotCreateCircleTool()));</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; </div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; actionCreateRectangleTool = <span class="keyword">new</span> QAction(tr(<span class="stringliteral">&quot;&amp;Rectangle&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; connect(actionCreateRectangleTool, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotResetTools()));</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; connect(actionCreateRectangleTool, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotCreateRectangleTool()));</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; </div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; actionCreatePolygonTool = <span class="keyword">new</span> QAction(tr(<span class="stringliteral">&quot;&amp;Polygon&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; connect(actionCreatePolygonTool, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotResetTools()));</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; connect(actionCreatePolygonTool, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotCreatePolygonTool()));</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; </div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; actionCreateFloodFillTool = <span class="keyword">new</span> QAction(tr(<span class="stringliteral">&quot;&amp;FloodFill&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; connect(actionCreateFloodFillTool, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotResetTools()));</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; connect(actionCreateFloodFillTool, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotCreateFloodFillTool()));</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; </div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="comment">// Create about action and tie to IntelliPhotoGui::about()</span></div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; actionAboutDialog = <span class="keyword">new</span> QAction(tr(<span class="stringliteral">&quot;&amp;About&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; connect(actionAboutDialog, SIGNAL(triggered()), <span class="keyword">this</span>, SLOT(slotAboutDialog()));</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; </div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="comment">// Create about Qt action and tie to IntelliPhotoGui::aboutQt()</span></div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; actionAboutQtDialog = <span class="keyword">new</span> QAction(tr(<span class="stringliteral">&quot;About &amp;Qt&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; connect(actionAboutQtDialog, SIGNAL(triggered()), qApp, SLOT(aboutQt()));</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; </div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; connect(EditLineWidth, SIGNAL(returnPressed()), <span class="keyword">this</span>, SLOT(slotEnterPressed()));</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; connect(EditLineInnerAlpha, SIGNAL(returnPressed()), <span class="keyword">this</span>, SLOT(slotEnterPressed()));</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; </div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; connect(CircleButton,SIGNAL(pressed()), <span class="keyword">this</span>, SLOT(slotResetTools()));</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; connect(CircleButton, SIGNAL(clicked()), <span class="keyword">this</span>, SLOT(slotCreateCircleTool()));</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; </div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; connect(FloodFillButton,SIGNAL(pressed()), <span class="keyword">this</span>, SLOT(slotResetTools()));</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; connect(FloodFillButton, SIGNAL(clicked()), <span class="keyword">this</span>, SLOT(slotCreateFloodFillTool()));</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; </div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; connect(LineButton,SIGNAL(pressed()), <span class="keyword">this</span>, SLOT(slotResetTools()));</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; connect(LineButton, SIGNAL(clicked()), <span class="keyword">this</span>, SLOT(slotCreateLineTool()));</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; </div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; connect(PenButton,SIGNAL(pressed()), <span class="keyword">this</span>, SLOT(slotResetTools()));</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; connect(PenButton, SIGNAL(clicked()), <span class="keyword">this</span>, SLOT(slotCreatePenTool()));</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; </div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; connect(PlainButton,SIGNAL(pressed()), <span class="keyword">this</span>, SLOT(slotResetTools()));</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; connect(PlainButton, SIGNAL(clicked()), <span class="keyword">this</span>, SLOT(slotCreatePlainTool()));</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; </div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; connect(PolygonButton,SIGNAL(pressed()), <span class="keyword">this</span>, SLOT(slotResetTools()));</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; connect(PolygonButton, SIGNAL(clicked()), <span class="keyword">this</span>, SLOT(slotCreatePolygonTool()));</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; </div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; connect(RectangleButton,SIGNAL(pressed()), <span class="keyword">this</span>, SLOT(slotResetTools()));</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; connect(RectangleButton, SIGNAL(clicked()), <span class="keyword">this</span>, SLOT(slotCreateRectangleTool()));</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;}</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; </div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<span class="comment">// Create the menubar</span></div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::createMenus(){</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="comment">// Create Save As option and the list of file types</span></div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; saveAsMenu = <span class="keyword">new</span> QMenu(tr(<span class="stringliteral">&quot;&amp;Save As&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">foreach</span> (QAction *action, actionSaveAs)</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; saveAsMenu-&gt;addAction(action);</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; </div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; </div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="comment">// Attach all actions to File</span></div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; fileMenu = <span class="keyword">new</span> QMenu(tr(<span class="stringliteral">&quot;&amp;File&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; fileMenu-&gt;addAction(actionOpen);</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; fileMenu-&gt;addMenu(saveAsMenu);</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; fileMenu-&gt;addSeparator();</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; fileMenu-&gt;addAction(actionExit);</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; </div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="comment">// Attach all actions to Options</span></div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; optionMenu = <span class="keyword">new</span> QMenu(tr(<span class="stringliteral">&quot;&amp;Options&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; optionMenu-&gt;addAction(actionSetActiveLayer);</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; optionMenu-&gt;addAction(actionSetActiveAlpha);</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; optionMenu-&gt;addAction(actionMovePositionUp);</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; optionMenu-&gt;addAction(actionMovePositionDown);</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; optionMenu-&gt;addAction(actionMovePositionLeft);</div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; optionMenu-&gt;addAction(actionMovePositionRight);</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; optionMenu-&gt;addAction(actionMoveLayerUp);</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; optionMenu-&gt;addAction(actionMoveLayerDown);</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; </div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="comment">// Attach all actions to Layer</span></div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; layerMenu = <span class="keyword">new</span> QMenu(tr(<span class="stringliteral">&quot;&amp;Layer&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; layerMenu-&gt;addAction(actionCreateNewLayer);</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; layerMenu-&gt;addAction(actionDeleteLayer);</div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; </div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="comment">//Attach all Color Options</span></div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; colorMenu = <span class="keyword">new</span> QMenu(tr(<span class="stringliteral">&quot;&amp;Color&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; colorMenu-&gt;addAction(actionColorPickerFirstColor);</div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; colorMenu-&gt;addAction(actionColorPickerSecondColor);</div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; colorMenu-&gt;addAction(actionColorSwap);</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; </div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="comment">//Attach all Tool Options</span></div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; toolMenu = <span class="keyword">new</span> QMenu(tr(<span class="stringliteral">&quot;&amp;Tools&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; toolMenu-&gt;addAction(actionCreateCircleTool);</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; toolMenu-&gt;addAction(actionCreateFloodFillTool);</div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; toolMenu-&gt;addAction(actionCreateLineTool);</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; toolMenu-&gt;addAction(actionCreatePenTool);</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; toolMenu-&gt;addAction(actionCreatePlainTool);</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; toolMenu-&gt;addAction(actionCreatePolygonTool);</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; toolMenu-&gt;addAction(actionCreateRectangleTool);</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; toolMenu-&gt;addSeparator();</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; toolMenu-&gt;addMenu(colorMenu);</div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; </div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="comment">// Attach all actions to Help</span></div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; helpMenu = <span class="keyword">new</span> QMenu(tr(<span class="stringliteral">&quot;&amp;Help&quot;</span>), <span class="keyword">this</span>);</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; helpMenu-&gt;addAction(actionAboutDialog);</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; helpMenu-&gt;addAction(actionAboutQtDialog);</div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; </div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="comment">// Add menu items to the menubar</span></div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; menuBar()-&gt;addMenu(fileMenu);</div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; menuBar()-&gt;addMenu(optionMenu);</div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; menuBar()-&gt;addMenu(layerMenu);</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; menuBar()-&gt;addMenu(toolMenu);</div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; menuBar()-&gt;addMenu(helpMenu);</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;}</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; </div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::createGui(){</div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="comment">// create a central widget to work on</span></div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; centralGuiWidget = <span class="keyword">new</span> QWidget(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; setCentralWidget(centralGuiWidget);</div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; </div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="comment">// create the grid for the layout</span></div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; mainLayout = <span class="keyword">new</span> QGridLayout(centralGuiWidget);</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; centralGuiWidget-&gt;setLayout(mainLayout);</div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; </div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="comment">// create Gui elements</span></div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; paintingArea = <span class="keyword">new</span> <a class="code" href="class_painting_area.html">PaintingArea</a>();</div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; paintingArea-&gt;DumpyGui = <span class="keyword">this</span>;</div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; </div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; p = QPixmap(<span class="stringliteral">&quot;:/Icons/Buttons/icons/circle-tool.svg&quot;</span>);</div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; CircleButton = <span class="keyword">new</span> QPushButton();</div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; CircleButton-&gt;setFixedSize(Buttonsize);</div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; CircleButton-&gt;setIcon(p);</div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; CircleButton-&gt;setIconSize(Buttonsize);</div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; CircleButton-&gt;setCheckable(<span class="keyword">true</span>);</div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; </div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; p = QPixmap(<span class="stringliteral">&quot;:/Icons/Buttons/icons/flood-fill-tool.svg&quot;</span>);</div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; FloodFillButton = <span class="keyword">new</span> QPushButton();</div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; FloodFillButton-&gt;setFixedSize(Buttonsize);</div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; FloodFillButton-&gt;setIcon(p);</div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; FloodFillButton-&gt;setIconSize(Buttonsize);</div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; FloodFillButton-&gt;setCheckable(<span class="keyword">true</span>);</div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; </div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; p = QPixmap(<span class="stringliteral">&quot;:/Icons/Buttons/icons/icon.png&quot;</span>);</div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; LineButton = <span class="keyword">new</span> QPushButton();</div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; LineButton-&gt;setFixedSize(Buttonsize);</div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; LineButton-&gt;setIcon(p);</div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; LineButton-&gt;setIconSize(Buttonsize);</div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; LineButton-&gt;setCheckable(<span class="keyword">true</span>);</div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; </div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; p = QPixmap(<span class="stringliteral">&quot;:/Icons/Buttons/icons/pen-tool.svg&quot;</span>);</div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; PenButton = <span class="keyword">new</span> QPushButton();</div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; PenButton-&gt;setFixedSize(Buttonsize);</div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; PenButton-&gt;setIcon(p);</div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; PenButton-&gt;setIconSize(Buttonsize);</div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; PenButton-&gt;setCheckable(<span class="keyword">true</span>);</div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; </div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; p = QPixmap(<span class="stringliteral">&quot;:/Icons/Buttons/icons/icon.png&quot;</span>);</div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; PlainButton = <span class="keyword">new</span> QPushButton();</div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; PlainButton-&gt;setFixedSize(Buttonsize);</div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; PlainButton-&gt;setIcon(p);</div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; PlainButton-&gt;setIconSize(Buttonsize);</div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; PlainButton-&gt;setCheckable(<span class="keyword">true</span>);</div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; </div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; p = QPixmap(<span class="stringliteral">&quot;:/Icons/Buttons/icons/polygon-tool.svg&quot;</span>);</div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; PolygonButton = <span class="keyword">new</span> QPushButton();</div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; PolygonButton-&gt;setFixedSize(Buttonsize);</div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; PolygonButton-&gt;setIcon(p);</div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; PolygonButton-&gt;setIconSize(Buttonsize);</div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; PolygonButton-&gt;setCheckable(<span class="keyword">true</span>);</div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; </div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; p = QPixmap(<span class="stringliteral">&quot;:/Icons/Buttons/icons/rectangle-tool.svg&quot;</span>);</div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; RectangleButton = <span class="keyword">new</span> QPushButton();</div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; RectangleButton-&gt;setFixedSize(Buttonsize);</div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; RectangleButton-&gt;setIcon(p);</div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; RectangleButton-&gt;setIconSize(Buttonsize);</div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; RectangleButton-&gt;setCheckable(<span class="keyword">true</span>);</div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; </div>
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; WidthLine = <span class="keyword">new</span> QLabel();</div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; WidthLine-&gt;setText(<span class="stringliteral">&quot;Width&quot;</span>);</div>
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; WidthLine-&gt;setFixedSize(Buttonsize.width(),Buttonsize.height()/3);</div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; </div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; EditLineWidth = <span class="keyword">new</span> QLineEdit();</div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; EditLineWidth-&gt;setFixedSize(Buttonsize.width(),Buttonsize.height()/3);</div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; EditLineWidth-&gt;setText(<span class="stringliteral">&quot;5&quot;</span>);</div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; ValidatorLineWidth = <span class="keyword">new</span> QIntValidator();</div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; ValidatorLineWidth-&gt;setTop(99);</div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; ValidatorLineWidth-&gt;setBottom(1);</div>
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; EditLineWidth-&gt;setValidator(ValidatorLineWidth);</div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; </div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; innerAlphaLine = <span class="keyword">new</span> QLabel();</div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; innerAlphaLine-&gt;setText(<span class="stringliteral">&quot;Inner Alpha&quot;</span>);</div>
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; innerAlphaLine-&gt;setFixedSize(Buttonsize.width(),Buttonsize.height()/3);</div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; </div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; EditLineInnerAlpha = <span class="keyword">new</span> QLineEdit();</div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; EditLineInnerAlpha-&gt;setFixedSize(Buttonsize.width(),Buttonsize.height()/3);</div>
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; EditLineInnerAlpha-&gt;setText(<span class="stringliteral">&quot;255&quot;</span>);</div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; ValidatorInnerAlpha = <span class="keyword">new</span> QIntValidator();</div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; ValidatorInnerAlpha-&gt;setTop(999);</div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; ValidatorInnerAlpha-&gt;setBottom(0);</div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; EditLineInnerAlpha-&gt;setValidator(ValidatorInnerAlpha);</div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; </div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; FirstColorButton = <span class="keyword">new</span> QPushButton();</div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; FirstColorButton-&gt;setFixedSize(Buttonsize/2);</div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; </div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; SecondColorButton = <span class="keyword">new</span> QPushButton();</div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; SecondColorButton-&gt;setFixedSize(Buttonsize/2);</div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; </div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; p = QPixmap(<span class="stringliteral">&quot;:/Icons/Buttons/icons/Wechselpfeile.png&quot;</span>);</div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; SwitchColorButton = <span class="keyword">new</span> QPushButton();</div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; SwitchColorButton-&gt;setFixedSize(Buttonsize.width(),Buttonsize.height()/2);</div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; SwitchColorButton-&gt;setIcon(p);</div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; SwitchColorButton-&gt;setIconSize(QSize(Buttonsize.width(),Buttonsize.height()/2));</div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; </div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; ActiveLayerLine = <span class="keyword">new</span> QLabel();</div>
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; QString <span class="keywordtype">string</span> = QString(<span class="stringliteral">&quot;Active Layer: %1&quot;</span>).arg(paintingArea-&gt;<a class="code" href="class_painting_area.html#a24280454ebb80db7feba2fd621513353">getNumberOfActiveLayer</a>());</div>
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; ActiveLayerLine-&gt;setText(<span class="keywordtype">string</span>);</div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; ActiveLayerLine-&gt;setFixedSize(Buttonsize.width()+10,Buttonsize.height()/3);</div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; </div>
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; p = p.fromImage(paintingArea-&gt;<a class="code" href="class_painting_area.html#acab11ad35d07e9081203d8217d2c0855">getImageOfActiveLayer</a>()-&gt;<a class="code" href="class_intelli_image.html#ad66fbe380ffe0e073a8cd760f8285fe3">getImageData</a>());</div>
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; </div>
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; ActiveLayerImageButton = <span class="keyword">new</span> QPushButton();</div>
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; ActiveLayerImageButton-&gt;setFixedSize(Buttonsize);</div>
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; ActiveLayerImageButton-&gt;setIcon(p);</div>
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; ActiveLayerImageButton-&gt;setIconSize(Buttonsize);</div>
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; </div>
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="comment">// set gui elements</span></div>
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; </div>
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; mainLayout-&gt;addWidget(paintingArea,1,1,20,1);</div>
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; mainLayout-&gt;addWidget(CircleButton,1,2,1,2);</div>
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; mainLayout-&gt;addWidget(FloodFillButton,2,2,1,2);</div>
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; mainLayout-&gt;addWidget(LineButton,3,2,1,2);</div>
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; mainLayout-&gt;addWidget(PenButton,4,2,1,2);</div>
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; mainLayout-&gt;addWidget(PlainButton,5,2,1,2);</div>
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; mainLayout-&gt;addWidget(PolygonButton,6,2,1,2);</div>
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; mainLayout-&gt;addWidget(RectangleButton,7,2,1,2);</div>
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; mainLayout-&gt;addWidget(WidthLine,8,2,1,2);</div>
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; mainLayout-&gt;addWidget(EditLineWidth,9,2,1,2);</div>
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; mainLayout-&gt;addWidget(innerAlphaLine,10,2,1,2);</div>
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; mainLayout-&gt;addWidget(EditLineInnerAlpha,11,2,1,2);</div>
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; mainLayout-&gt;addWidget(FirstColorButton,12,2,1,1);</div>
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; mainLayout-&gt;addWidget(SecondColorButton,12,3,1,1);</div>
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; mainLayout-&gt;addWidget(SwitchColorButton,13,2,1,2);</div>
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; mainLayout-&gt;addWidget(ActiveLayerLine,14,2,1,2);</div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; mainLayout-&gt;addWidget(ActiveLayerImageButton,15,2,1,2);</div>
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;}</div>
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; </div>
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::setIntelliStyle(){</div>
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="comment">// Set the title</span></div>
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; setWindowTitle(<span class="stringliteral">&quot;IntelliPhoto Prototype&quot;</span>);</div>
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <span class="comment">// Set style sheet</span></div>
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; this-&gt;setStyleSheet(<span class="stringliteral">&quot;background-color:rgb(64,64,64)&quot;</span>);</div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; this-&gt;centralGuiWidget-&gt;setStyleSheet(<span class="stringliteral">&quot;color:rgb(255,255,255)&quot;</span>);</div>
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; this-&gt;menuBar()-&gt;setStyleSheet(<span class="stringliteral">&quot;color:rgb(255,255,255)&quot;</span>);</div>
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; QString <span class="keywordtype">string</span> = QString(<span class="stringliteral">&quot;background-color: %1&quot;</span>).arg(paintingArea-&gt;<a class="code" href="class_painting_area.html#a132535c4e16052c1472cf1b9f3e096ed">colorPicker</a>.<a class="code" href="class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7">getFirstColor</a>().name());</div>
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; FirstColorButton-&gt;setStyleSheet(<span class="keywordtype">string</span>);</div>
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; <span class="keywordtype">string</span> = QString(<span class="stringliteral">&quot;background-color: %1&quot;</span>).arg(paintingArea-&gt;<a class="code" href="class_painting_area.html#a132535c4e16052c1472cf1b9f3e096ed">colorPicker</a>.<a class="code" href="class_intelli_color_picker.html#a55568fbf5dc783f06284b7031ffe9415">getSecondColor</a>().name());</div>
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; SecondColorButton-&gt;setStyleSheet(<span class="keywordtype">string</span>);</div>
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;}</div>
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; </div>
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;<span class="keywordtype">bool</span> IntelliPhotoGui::maybeSave(){</div>
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="comment">// Check for changes since last save</span></div>
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; </div>
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="comment">// TODO insert variable for modified status here to make an save exit message</span></div>
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">false</span>) {</div>
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; QMessageBox::StandardButton ret;</div>
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; </div>
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="comment">// Painting is the title of the window</span></div>
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="comment">// Add text and the buttons</span></div>
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; ret = QMessageBox::warning(<span class="keyword">this</span>, tr(<span class="stringliteral">&quot;Painting&quot;</span>),</div>
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; tr(<span class="stringliteral">&quot;The image has been modified.\n&quot;</span></div>
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <span class="stringliteral">&quot;Do you want to save your changes?&quot;</span>),</div>
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; QMessageBox::Save | QMessageBox::Discard</div>
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; | QMessageBox::Cancel);</div>
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; </div>
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="comment">// If save button clicked call for file to be saved</span></div>
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="keywordflow">if</span> (ret == QMessageBox::Save) {</div>
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <span class="keywordflow">return</span> saveFile(<span class="stringliteral">&quot;png&quot;</span>);</div>
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; </div>
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <span class="comment">// If cancel do nothing</span></div>
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ret == QMessageBox::Cancel) {</div>
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; }</div>
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; }</div>
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;}</div>
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; </div>
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<span class="keywordtype">bool</span> IntelliPhotoGui::saveFile(<span class="keyword">const</span> QByteArray &amp;fileFormat){</div>
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <span class="comment">// Define path, name and default file type</span></div>
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; QString initialPath = QDir::currentPath() + <span class="stringliteral">&quot;/untitled.&quot;</span> + fileFormat;</div>
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; </div>
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <span class="comment">// Get selected file from dialog</span></div>
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <span class="comment">// Add the proper file formats and extensions</span></div>
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; QString fileName = QFileDialog::getSaveFileName(<span class="keyword">this</span>, tr(<span class="stringliteral">&quot;Save As&quot;</span>),</div>
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; initialPath,</div>
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; tr(<span class="stringliteral">&quot;%1 Files (*.%2);;All Files (*)&quot;</span>)</div>
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; .arg(QString::fromLatin1(fileFormat.toUpper()))</div>
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; .arg(QString::fromLatin1(fileFormat)), <span class="keyword">nullptr</span>, QFileDialog::DontUseNativeDialog);</div>
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; </div>
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <span class="comment">// If no file do nothing</span></div>
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <span class="keywordflow">if</span> (fileName.isEmpty()) {</div>
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="comment">// Call for the file to be saved</span></div>
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keywordflow">return</span> paintingArea-&gt;<a class="code" href="class_painting_area.html#aa2463d4f403224086acab02903ae407e">save</a>(fileName, fileFormat.constData());</div>
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; }</div>
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;}</div>
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; </div>
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;<span class="keywordtype">void</span> IntelliPhotoGui::setDefaultToolValue(){</div>
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; slotEnterPressed();</div>
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;}</div>
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; </div>
<div class="line"><a name="l00694"></a><span class="lineno"><a class="line" href="class_intelli_photo_gui.html#a1dbef8d4688227aa9455aea52db00bf4"> 694</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_intelli_photo_gui.html#a1dbef8d4688227aa9455aea52db00bf4">IntelliPhotoGui::UpdateGui</a>(){</div>
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; QString <span class="keywordtype">string</span> = QString(<span class="stringliteral">&quot;Active Layer: %1&quot;</span>).arg(paintingArea-&gt;<a class="code" href="class_painting_area.html#a24280454ebb80db7feba2fd621513353">getNumberOfActiveLayer</a>());</div>
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; ActiveLayerLine-&gt;setText(<span class="keywordtype">string</span>);</div>
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; p = p.fromImage(paintingArea-&gt;<a class="code" href="class_painting_area.html#acab11ad35d07e9081203d8217d2c0855">getImageOfActiveLayer</a>()-&gt;<a class="code" href="class_intelli_image.html#ad66fbe380ffe0e073a8cd760f8285fe3">getImageData</a>());</div>
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; ActiveLayerImageButton-&gt;setIcon(p);</div>
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; ActiveLayerImageButton-&gt;setIconSize(Buttonsize);</div>
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; </div>
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keywordtype">string</span> = QString(<span class="stringliteral">&quot;background-color: %1&quot;</span>).arg(paintingArea-&gt;<a class="code" href="class_painting_area.html#a132535c4e16052c1472cf1b9f3e096ed">colorPicker</a>.<a class="code" href="class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7">getFirstColor</a>().name());</div>
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; FirstColorButton-&gt;setStyleSheet(<span class="keywordtype">string</span>);</div>
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="keywordtype">string</span> = QString(<span class="stringliteral">&quot;background-color: %1&quot;</span>).arg(paintingArea-&gt;<a class="code" href="class_painting_area.html#a132535c4e16052c1472cf1b9f3e096ed">colorPicker</a>.<a class="code" href="class_intelli_color_picker.html#a55568fbf5dc783f06284b7031ffe9415">getSecondColor</a>().name());</div>
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; SecondColorButton-&gt;setStyleSheet(<span class="keywordtype">string</span>);</div>
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;}</div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aclass_painting_area_html_a2d9f4b3585f7dd1acb11f432ca503466"><div class="ttname"><a href="class_painting_area.html#a2d9f4b3585f7dd1acb11f432ca503466">PaintingArea::createCircleTool</a></div><div class="ttdeci">void createCircleTool()</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8cpp_source.html#l00222">PaintingArea.cpp:222</a></div></div>
<div class="ttc" id="aclass_painting_area_html_acab11ad35d07e9081203d8217d2c0855"><div class="ttname"><a href="class_painting_area.html#acab11ad35d07e9081203d8217d2c0855">PaintingArea::getImageOfActiveLayer</a></div><div class="ttdeci">IntelliImage * getImageOfActiveLayer()</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8cpp_source.html#l00406">PaintingArea.cpp:406</a></div></div>
<div class="ttc" id="aclass_painting_area_html_a5b04ce62ce024e307f54e0281f7ae4bd"><div class="ttname"><a href="class_painting_area.html#a5b04ce62ce024e307f54e0281f7ae4bd">PaintingArea::createRectangleTool</a></div><div class="ttdeci">void createRectangleTool()</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8cpp_source.html#l00217">PaintingArea.cpp:217</a></div></div>
<div class="ttc" id="aclass_intelli_toolsettings_html_a906d37de6ee94b433d53fe3e598cc9fa"><div class="ttname"><a href="class_intelli_toolsettings.html#a906d37de6ee94b433d53fe3e598cc9fa">IntelliToolsettings::setLineWidth</a></div><div class="ttdeci">void setLineWidth()</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_toolsettings_8cpp_source.html#l00019">IntelliToolsettings.cpp:19</a></div></div>
<div class="ttc" id="aclass_painting_area_html_aa2463d4f403224086acab02903ae407e"><div class="ttname"><a href="class_painting_area.html#aa2463d4f403224086acab02903ae407e">PaintingArea::save</a></div><div class="ttdeci">bool save(const QString &amp;filePath, const char *fileFormat)</div><div class="ttdoc">The save method is used for exporting the current project as one picture.</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8cpp_source.html#l00115">PaintingArea.cpp:115</a></div></div>
<div class="ttc" id="aclass_painting_area_html_a6c7e0865e684ae1089ee283b4399d055"><div class="ttname"><a href="class_painting_area.html#a6c7e0865e684ae1089ee283b4399d055">PaintingArea::setLayerAlpha</a></div><div class="ttdeci">void setLayerAlpha(int idx, int alpha)</div><div class="ttdoc">The setAlphaOfLayer method sets the alpha value of a specific layer.</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8cpp_source.html#l00096">PaintingArea.cpp:96</a></div></div>
<div class="ttc" id="aclass_painting_area_html_a79eb059829f27e8cdb3a54c5cd3d12c9"><div class="ttname"><a href="class_painting_area.html#a79eb059829f27e8cdb3a54c5cd3d12c9">PaintingArea::setLayerActive</a></div><div class="ttdeci">void setLayerActive(int idx)</div><div class="ttdoc">The setLayerToActive method marks a specific layer as active.</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8cpp_source.html#l00090">PaintingArea.cpp:90</a></div></div>
<div class="ttc" id="aclass_painting_area_html_aeb5eb394b979ea90f2be9849fdda1774"><div class="ttname"><a href="class_painting_area.html#aeb5eb394b979ea90f2be9849fdda1774">PaintingArea::floodFill</a></div><div class="ttdeci">void floodFill(int r, int g, int b, int a)</div><div class="ttdoc">The floodFill method fills a the active layer with a given color.</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8cpp_source.html#l00139">PaintingArea.cpp:139</a></div></div>
<div class="ttc" id="aclass_intelli_color_picker_html_a55568fbf5dc783f06284b7031ffe9415"><div class="ttname"><a href="class_intelli_color_picker.html#a55568fbf5dc783f06284b7031ffe9415">IntelliColorPicker::getSecondColor</a></div><div class="ttdeci">QColor getSecondColor()</div><div class="ttdoc">A function to read the secondary selected color.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_2_intelli_color_picker_8cpp_source.html#l00020">IntelliColorPicker.cpp:20</a></div></div>
<div class="ttc" id="aclass_painting_area_html_a2382ebf8c31dee36cb714f34a18b71e4"><div class="ttname"><a href="class_painting_area.html#a2382ebf8c31dee36cb714f34a18b71e4">PaintingArea::deleteLayer</a></div><div class="ttdeci">void deleteLayer(int idx)</div><div class="ttdoc">The deleteLayer method removes a layer at a given idx.</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8cpp_source.html#l00074">PaintingArea.cpp:74</a></div></div>
<div class="ttc" id="aclass_painting_area_html_a3de83443d2d5cf460ff48d0602070938"><div class="ttname"><a href="class_painting_area.html#a3de83443d2d5cf460ff48d0602070938">PaintingArea::createPlainTool</a></div><div class="ttdeci">void createPlainTool()</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8cpp_source.html#l00207">PaintingArea.cpp:207</a></div></div>
<div class="ttc" id="aclass_intelli_photo_gui_html_ad2aaec3c1517a9aaa461b54e341b97e0"><div class="ttname"><a href="class_intelli_photo_gui.html#ad2aaec3c1517a9aaa461b54e341b97e0">IntelliPhotoGui::IntelliPhotoGui</a></div><div class="ttdeci">IntelliPhotoGui()</div><div class="ttdoc">The IntelliPhotoGui method is the constructor and is used to create a new instance of the main progra...</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_photo_gui_8cpp_source.html#l00007">IntelliPhotoGui.cpp:7</a></div></div>
<div class="ttc" id="aclass_painting_area_html"><div class="ttname"><a href="class_painting_area.html">PaintingArea</a></div><div class="ttdoc">The PaintingArea class manages the methods and stores information about the current painting area,...</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8h_source.html#l00037">PaintingArea.h:37</a></div></div>
<div class="ttc" id="aclass_painting_area_html_a96c6248e343e44b61cf2625cb6d21353"><div class="ttname"><a href="class_painting_area.html#a96c6248e343e44b61cf2625cb6d21353">PaintingArea::createPenTool</a></div><div class="ttdeci">void createPenTool()</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8cpp_source.html#l00202">PaintingArea.cpp:202</a></div></div>
<div class="ttc" id="aclass_painting_area_html_a240c33a7875addac86080cdfb0db036a"><div class="ttname"><a href="class_painting_area.html#a240c33a7875addac86080cdfb0db036a">PaintingArea::createLineTool</a></div><div class="ttdeci">void createLineTool()</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8cpp_source.html#l00212">PaintingArea.cpp:212</a></div></div>
<div class="ttc" id="aclass_painting_area_html_ae261acaaa346610dfed489dbac17e789"><div class="ttname"><a href="class_painting_area.html#ae261acaaa346610dfed489dbac17e789">PaintingArea::colorPickerSetSecondColor</a></div><div class="ttdeci">void colorPickerSetSecondColor()</div><div class="ttdoc">The colorPickerSetSecondColor calls the QTColorPicker to determine the secondary drawing color.</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8cpp_source.html#l00193">PaintingArea.cpp:193</a></div></div>
<div class="ttc" id="aclass_painting_area_html_a4735d4cf1dc58a9096d904e74c39c4df"><div class="ttname"><a href="class_painting_area.html#a4735d4cf1dc58a9096d904e74c39c4df">PaintingArea::colorPickerSetFirstColor</a></div><div class="ttdeci">void colorPickerSetFirstColor()</div><div class="ttdoc">The colorPickerSetFirstColor calls the QTColorPicker to determine the primary drawing color.</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8cpp_source.html#l00188">PaintingArea.cpp:188</a></div></div>
<div class="ttc" id="a_intelli_photo_gui_8h_html"><div class="ttname"><a href="_intelli_photo_gui_8h.html">IntelliPhotoGui.h</a></div></div>
<div class="ttc" id="aclass_painting_area_html_a24280454ebb80db7feba2fd621513353"><div class="ttname"><a href="class_painting_area.html#a24280454ebb80db7feba2fd621513353">PaintingArea::getNumberOfActiveLayer</a></div><div class="ttdeci">int getNumberOfActiveLayer()</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8cpp_source.html#l00402">PaintingArea.cpp:402</a></div></div>
<div class="ttc" id="aclass_intelli_photo_gui_html_a2cf48070236ae8b35245e7f30482ef13"><div class="ttname"><a href="class_intelli_photo_gui.html#a2cf48070236ae8b35245e7f30482ef13">IntelliPhotoGui::closeEvent</a></div><div class="ttdeci">void closeEvent(QCloseEvent *event) override</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_photo_gui_8cpp_source.html#l00023">IntelliPhotoGui.cpp:23</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_ad66fbe380ffe0e073a8cd760f8285fe3"><div class="ttname"><a href="class_intelli_image.html#ad66fbe380ffe0e073a8cd760f8285fe3">IntelliImage::getImageData</a></div><div class="ttdeci">virtual QImage getImageData()</div><div class="ttdoc">getImageData returns the data of the current image.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8cpp_source.html#l00123">IntelliImage.cpp:123</a></div></div>
<div class="ttc" id="aclass_painting_area_html_a88c7e759aa8375a56129791645f46ea5"><div class="ttname"><a href="class_painting_area.html#a88c7e759aa8375a56129791645f46ea5">PaintingArea::open</a></div><div class="ttdeci">bool open(const QString &amp;filePath)</div><div class="ttdoc">The open method is used for loading a picture into the current layer.</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8cpp_source.html#l00103">PaintingArea.cpp:103</a></div></div>
<div class="ttc" id="aclass_painting_area_html_a13c2f94644bea9c2d3123d0b7898f34b"><div class="ttname"><a href="class_painting_area.html#a13c2f94644bea9c2d3123d0b7898f34b">PaintingArea::createPolygonTool</a></div><div class="ttdeci">void createPolygonTool()</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8cpp_source.html#l00226">PaintingArea.cpp:226</a></div></div>
<div class="ttc" id="aclass_painting_area_html_ae05f6893fb44bfcb34018573a609cd1a"><div class="ttname"><a href="class_painting_area.html#ae05f6893fb44bfcb34018573a609cd1a">PaintingArea::moveActiveLayer</a></div><div class="ttdeci">void moveActiveLayer(int idx)</div><div class="ttdoc">The moveActiveLayer moves the active layer to a specific position in the layer stack.</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8cpp_source.html#l00160">PaintingArea.cpp:160</a></div></div>
<div class="ttc" id="aclass_painting_area_html_a132535c4e16052c1472cf1b9f3e096ed"><div class="ttname"><a href="class_painting_area.html#a132535c4e16052c1472cf1b9f3e096ed">PaintingArea::colorPicker</a></div><div class="ttdeci">IntelliColorPicker colorPicker</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8h_source.html#l00175">PaintingArea.h:175</a></div></div>
<div class="ttc" id="a_painting_area_8h_html"><div class="ttname"><a href="_painting_area_8h.html">PaintingArea.h</a></div></div>
<div class="ttc" id="aclass_intelli_color_picker_html_aae2eb27b928fe9388b9398b0556303b7"><div class="ttname"><a href="class_intelli_color_picker.html#aae2eb27b928fe9388b9398b0556303b7">IntelliColorPicker::getFirstColor</a></div><div class="ttdeci">QColor getFirstColor()</div><div class="ttdoc">A function to read the primary selected color.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_helper_2_intelli_color_picker_8cpp_source.html#l00016">IntelliColorPicker.cpp:16</a></div></div>
<div class="ttc" id="aclass_painting_area_html_a0b22e18069b524f3e75857d203baf256"><div class="ttname"><a href="class_painting_area.html#a0b22e18069b524f3e75857d203baf256">PaintingArea::createFloodFillTool</a></div><div class="ttdeci">void createFloodFillTool()</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8cpp_source.html#l00231">PaintingArea.cpp:231</a></div></div>
<div class="ttc" id="aclass_intelli_photo_gui_html_a1dbef8d4688227aa9455aea52db00bf4"><div class="ttname"><a href="class_intelli_photo_gui.html#a1dbef8d4688227aa9455aea52db00bf4">IntelliPhotoGui::UpdateGui</a></div><div class="ttdeci">void UpdateGui()</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_photo_gui_8cpp_source.html#l00694">IntelliPhotoGui.cpp:694</a></div></div>
<div class="ttc" id="aclass_painting_area_html_abc2f798744f1dc805a651731eb1692ea"><div class="ttname"><a href="class_painting_area.html#abc2f798744f1dc805a651731eb1692ea">PaintingArea::Toolsettings</a></div><div class="ttdeci">IntelliToolsettings Toolsettings</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8h_source.html#l00174">PaintingArea.h:174</a></div></div>
<div class="ttc" id="aclass_painting_area_html_acff4563d006fda491469bd41778d07eb"><div class="ttname"><a href="class_painting_area.html#acff4563d006fda491469bd41778d07eb">PaintingArea::colorPickerSwapColors</a></div><div class="ttdeci">void colorPickerSwapColors()</div><div class="ttdoc">The colorPickerSwitchColor swaps the primary color with the secondary drawing color.</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8cpp_source.html#l00198">PaintingArea.cpp:198</a></div></div>
<div class="ttc" id="aclass_painting_area_html_ac6d089f4357b22d9a9906fd4771de3e7"><div class="ttname"><a href="class_painting_area.html#ac6d089f4357b22d9a9906fd4771de3e7">PaintingArea::movePositionActive</a></div><div class="ttdeci">void movePositionActive(int x, int y)</div><div class="ttdoc">The movePositionActive method moves the active layer to certain position.</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8cpp_source.html#l00148">PaintingArea.cpp:148</a></div></div>
<div class="ttc" id="aclass_intelli_toolsettings_html_a32f165c89190e40caf96abb916e6c876"><div class="ttname"><a href="class_intelli_toolsettings.html#a32f165c89190e40caf96abb916e6c876">IntelliToolsettings::setInnerAlpha</a></div><div class="ttdeci">void setInnerAlpha()</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_toolsettings_8cpp_source.html#l00037">IntelliToolsettings.cpp:37</a></div></div>
<div class="ttc" id="aclass_painting_area_html_a6e9207612cef104d39013564696fe989"><div class="ttname"><a href="class_painting_area.html#a6e9207612cef104d39013564696fe989">PaintingArea::addLayer</a></div><div class="ttdeci">int addLayer(int width, int height, int widthOffset=0, int heightOffset=0, IntelliImage::ImageType type=IntelliImage::ImageType::RASTERIMAGE)</div><div class="ttdoc">The addLayer adds a layer to the current project/ painting area.</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8cpp_source.html#l00056">PaintingArea.cpp:56</a></div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_8db5f55022e7670536cbc9a6a1d6f01c.html">intelliphoto</a></li><li class="navelem"><a class="el" href="dir_83a4347d11f2ba6343d546ab133722d2.html">src</a></li><li class="navelem"><a class="el" href="dir_5dabb14988a75c922e285f444641a133.html">GUI</a></li><li class="navelem"><a class="el" href="_intelli_photo_gui_8cpp.html">IntelliPhotoGui.cpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,125 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IntelliPhoto: intelliphoto/src/GUI/IntelliPhotoGui.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">IntelliPhoto
&#160;<span id="projectnumber">0.5</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_intelli_photo_gui_8h.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> </div>
<div class="headertitle">
<div class="title">IntelliPhotoGui.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;QtWidgets&gt;</code><br />
<code>#include &lt;QPixmap&gt;</code><br />
<code>#include &lt;QList&gt;</code><br />
<code>#include &lt;QMainWindow&gt;</code><br />
<code>#include &lt;QGridLayout&gt;</code><br />
<code>#include &lt;QPushButton&gt;</code><br />
<code>#include &lt;QTextEdit&gt;</code><br />
<code>#include &lt;QLabel&gt;</code><br />
<code>#include &lt;QLineEdit&gt;</code><br />
</div>
<p><a href="_intelli_photo_gui_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_intelli_photo_gui.html">IntelliPhotoGui</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="class_intelli_photo_gui.html" title="The IntelliPhotoGui class handles the graphical user interface for the intelliPhoto program.">IntelliPhotoGui</a> class handles the graphical user interface for the intelliPhoto program. <a href="class_intelli_photo_gui.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_8db5f55022e7670536cbc9a6a1d6f01c.html">intelliphoto</a></li><li class="navelem"><a class="el" href="dir_83a4347d11f2ba6343d546ab133722d2.html">src</a></li><li class="navelem"><a class="el" href="dir_5dabb14988a75c922e285f444641a133.html">GUI</a></li><li class="navelem"><a class="el" href="_intelli_photo_gui_8h.html">IntelliPhotoGui.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,32 @@
digraph "intelliphoto/src/GUI/IntelliPhotoGui.h"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="intelliphoto/src/GUI\l/IntelliPhotoGui.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="intelliphoto/src/GUI\l/IntelliPhotoGui.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_photo_gui_8cpp.html",tooltip=" "];
Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="intelliphoto/src/Layer\l/PaintingArea.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8h.html",tooltip=" "];
Node3 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="intelliphoto/src/Layer\l/PaintingArea.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8cpp.html",tooltip=" "];
Node3 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="intelliphoto/src/Tool\l/IntelliTool.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8cpp.html",tooltip=" "];
Node3 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node6 [label="intelliphoto/src/Tool\l/IntelliToolCircle.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_circle_8cpp.html",tooltip=" "];
Node3 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 [label="intelliphoto/src/Tool\l/IntelliToolFloodFill.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_flood_fill_8cpp.html",tooltip=" "];
Node3 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node8 [label="intelliphoto/src/Tool\l/IntelliToolLine.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_line_8cpp.html",tooltip=" "];
Node3 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node9 [label="intelliphoto/src/Tool\l/IntelliToolPen.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_pen_8cpp.html",tooltip=" "];
Node3 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 [label="intelliphoto/src/Tool\l/IntelliToolPlain.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_plain_8cpp.html",tooltip=" "];
Node3 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 [label="intelliphoto/src/Tool\l/IntelliToolPolygon.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_polygon_8cpp.html",tooltip=" "];
Node3 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node12 [label="intelliphoto/src/Tool\l/IntelliToolRectangle.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_rectangle_8cpp.html",tooltip=" "];
Node1 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node13 [label="intelliphoto/src/main.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$main_8cpp.html",tooltip=" "];
}

View File

@@ -0,0 +1,25 @@
digraph "intelliphoto/src/GUI/IntelliPhotoGui.h"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="intelliphoto/src/GUI\l/IntelliPhotoGui.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="QtWidgets",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="QPixmap",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="QList",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="QMainWindow",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node6 [label="QGridLayout",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 [label="QPushButton",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node1 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node8 [label="QTextEdit",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node9 [label="QLabel",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node1 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 [label="QLineEdit",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
}

View File

@@ -0,0 +1,280 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IntelliPhoto: intelliphoto/src/GUI/IntelliPhotoGui.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">IntelliPhoto
&#160;<span id="projectnumber">0.5</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_intelli_photo_gui_8h_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">IntelliPhotoGui.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="_intelli_photo_gui_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef IntelliPhotoGui_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define IntelliPhotoGui_H</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160; </div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;QtWidgets&gt;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;QPixmap&gt;</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &lt;QList&gt;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &lt;QMainWindow&gt;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &lt;QGridLayout&gt;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &lt;QPushButton&gt;</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &lt;QTextEdit&gt;</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &lt;QLabel&gt;</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &lt;QLineEdit&gt;</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; </div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// PaintingArea used to paint the image</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">class </span><a class="code" href="class_painting_area.html">PaintingArea</a>;</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keyword">class </span><a class="code" href="class_intelli_tool.html">IntelliTool</a>;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; </div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="keyword">class </span><a class="code" href="class_intelli_color_picker.html">IntelliColorPicker</a>;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="class_intelli_photo_gui.html"> 24</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_intelli_photo_gui.html">IntelliPhotoGui</a> : <span class="keyword">public</span> QMainWindow {</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">// Declares our class as a QObject which is the base class</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// for all Qt objects</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">// QObjects handle events</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;Q_OBJECT</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<a class="code" href="class_intelli_photo_gui.html#ad2aaec3c1517a9aaa461b54e341b97e0">IntelliPhotoGui</a>();</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; </div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_intelli_photo_gui.html#a1dbef8d4688227aa9455aea52db00bf4">UpdateGui</a>();</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; </div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// Function used to close an event</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_intelli_photo_gui.html#a2cf48070236ae8b35245e7f30482ef13">closeEvent</a>(QCloseEvent*event) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; </div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">private</span> slots:</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">// meta slots here (need further )</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keywordtype">void</span> slotOpen();</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keywordtype">void</span> slotSave();</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">// layer slots here</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keywordtype">void</span> slotCreateNewLayer();</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keywordtype">void</span> slotDeleteLayer();</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keywordtype">void</span> slotClearActiveLayer();</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keywordtype">void</span> slotSetActiveLayer();</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keywordtype">void</span> slotSetActiveAlpha();</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keywordtype">void</span> slotPositionMoveUp();</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keywordtype">void</span> slotPositionMoveDown();</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keywordtype">void</span> slotPositionMoveLeft();</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keywordtype">void</span> slotPositionMoveRight();</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keywordtype">void</span> slotMoveLayerUp();</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keywordtype">void</span> slotMoveLayerDown();</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment">// color Picker slots here</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keywordtype">void</span> slotSetFirstColor();</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keywordtype">void</span> slotSetSecondColor();</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keywordtype">void</span> slotSwapColor();</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment">// tool slots here</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keywordtype">void</span> slotCreatePenTool();</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keywordtype">void</span> slotCreatePlainTool();</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keywordtype">void</span> slotCreateLineTool();</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="keywordtype">void</span> slotCreateRectangleTool();</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keywordtype">void</span> slotCreateCircleTool();</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="keywordtype">void</span> slotCreatePolygonTool();</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="keywordtype">void</span> slotCreateFloodFillTool();</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; </div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment">// slots for dialogs</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keywordtype">void</span> slotAboutDialog();</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; </div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keywordtype">void</span> slotEnterPressed();</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="keywordtype">void</span> slotResetTools();</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; </div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment">// Will tie user actions to functions</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="keywordtype">void</span> createActions();</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="keywordtype">void</span> createMenus();</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment">// setup GUI elements</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="keywordtype">void</span> createGui();</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment">// set style of the GUI</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="keywordtype">void</span> setIntelliStyle();</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; </div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment">// Will check if changes have occurred since last save</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="keywordtype">bool</span> maybeSave();</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment">// Opens the Save dialog and saves</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="keywordtype">bool</span> saveFile(<span class="keyword">const</span> QByteArray &amp;fileFormat);</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; </div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="keywordtype">void</span> setDefaultToolValue();</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; </div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment">// What we&#39;ll draw on</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<a class="code" href="class_painting_area.html">PaintingArea</a>* paintingArea;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; </div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="keyword">const</span> QSize Buttonsize = QSize(70,70);</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;QPixmap p;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;QPushButton* CircleButton;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;QPushButton* FloodFillButton;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;QPushButton* LineButton;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;QPushButton* PenButton;</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;QPushButton* PlainButton;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;QPushButton* PolygonButton;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;QPushButton* RectangleButton;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;QLabel* WidthLine;</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;QLabel* innerAlphaLine;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;QLineEdit* EditLineWidth;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;QLineEdit* EditLineInnerAlpha;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;QIntValidator* ValidatorLineWidth;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;QIntValidator* ValidatorInnerAlpha;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; </div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;QPushButton* FirstColorButton;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;QPushButton* SecondColorButton;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;QPushButton* SwitchColorButton;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; </div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;QLabel* ActiveLayerLine;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;QPushButton* ActiveLayerImageButton;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment">// The menu widgets</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;QMenu*saveAsMenu;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;QMenu*fileMenu;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;QMenu*optionMenu;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;QMenu*layerMenu;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;QMenu*colorMenu;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;QMenu*toolMenu;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;QMenu*helpMenu;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; </div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment">// All the actions that can occur</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment">// meta image actions (need further modularisation)</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;QAction*actionOpen;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;QAction*actionExit;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; </div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment">// color Picker actions</span></div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;QAction*actionColorPickerFirstColor;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;QAction*actionColorPickerSecondColor;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;QAction*actionColorSwap;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; </div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment">// tool actions</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;QAction*actionCreatePenTool;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;QAction*actionCreatePlainTool;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;QAction*actionCreateLineTool;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;QAction*actionCreateRectangleTool;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;QAction*actionCreateCircleTool;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;QAction*actionCreatePolygonTool;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;QAction*actionCreateFloodFillTool;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; </div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="comment">// dialog actions</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;QAction*actionAboutDialog;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;QAction*actionAboutQtDialog;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; </div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="comment">// layer change actions</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;QAction*actionCreateNewLayer;</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;QAction*actionDeleteLayer;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;QAction* actionSetActiveLayer;</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;QAction* actionSetActiveAlpha;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;QAction* actionMovePositionUp;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;QAction* actionMovePositionDown;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;QAction* actionMovePositionLeft;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;QAction* actionMovePositionRight;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;QAction* actionMoveLayerUp;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;QAction* actionMoveLayerDown;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="comment">// Actions tied to specific file formats</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;QList&lt;QAction*&gt; actionSaveAs;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; </div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="comment">// main GUI elements</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;QWidget* centralGuiWidget;</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;QGridLayout* mainLayout;</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;};</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; </div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aclass_intelli_photo_gui_html"><div class="ttname"><a href="class_intelli_photo_gui.html">IntelliPhotoGui</a></div><div class="ttdoc">The IntelliPhotoGui class handles the graphical user interface for the intelliPhoto program.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_photo_gui_8h_source.html#l00024">IntelliPhotoGui.h:24</a></div></div>
<div class="ttc" id="aclass_intelli_photo_gui_html_ad2aaec3c1517a9aaa461b54e341b97e0"><div class="ttname"><a href="class_intelli_photo_gui.html#ad2aaec3c1517a9aaa461b54e341b97e0">IntelliPhotoGui::IntelliPhotoGui</a></div><div class="ttdeci">IntelliPhotoGui()</div><div class="ttdoc">The IntelliPhotoGui method is the constructor and is used to create a new instance of the main progra...</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_photo_gui_8cpp_source.html#l00007">IntelliPhotoGui.cpp:7</a></div></div>
<div class="ttc" id="aclass_painting_area_html"><div class="ttname"><a href="class_painting_area.html">PaintingArea</a></div><div class="ttdoc">The PaintingArea class manages the methods and stores information about the current painting area,...</div><div class="ttdef"><b>Definition:</b> <a href="_painting_area_8h_source.html#l00037">PaintingArea.h:37</a></div></div>
<div class="ttc" id="aclass_intelli_tool_html"><div class="ttname"><a href="class_intelli_tool.html">IntelliTool</a></div><div class="ttdoc">An abstract class that manages the basic events, like mouse clicks or scrolls events.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_tool_8h_source.html#l00014">IntelliTool.h:14</a></div></div>
<div class="ttc" id="aclass_intelli_photo_gui_html_a2cf48070236ae8b35245e7f30482ef13"><div class="ttname"><a href="class_intelli_photo_gui.html#a2cf48070236ae8b35245e7f30482ef13">IntelliPhotoGui::closeEvent</a></div><div class="ttdeci">void closeEvent(QCloseEvent *event) override</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_photo_gui_8cpp_source.html#l00023">IntelliPhotoGui.cpp:23</a></div></div>
<div class="ttc" id="aclass_intelli_color_picker_html"><div class="ttname"><a href="class_intelli_color_picker.html">IntelliColorPicker</a></div><div class="ttdoc">The IntelliColorPicker manages the selected colors for one whole project.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_color_picker_8h_source.html#l00011">IntelliColorPicker.h:11</a></div></div>
<div class="ttc" id="aclass_intelli_photo_gui_html_a1dbef8d4688227aa9455aea52db00bf4"><div class="ttname"><a href="class_intelli_photo_gui.html#a1dbef8d4688227aa9455aea52db00bf4">IntelliPhotoGui::UpdateGui</a></div><div class="ttdeci">void UpdateGui()</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_photo_gui_8cpp_source.html#l00694">IntelliPhotoGui.cpp:694</a></div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_8db5f55022e7670536cbc9a6a1d6f01c.html">intelliphoto</a></li><li class="navelem"><a class="el" href="dir_83a4347d11f2ba6343d546ab133722d2.html">src</a></li><li class="navelem"><a class="el" href="dir_5dabb14988a75c922e285f444641a133.html">GUI</a></li><li class="navelem"><a class="el" href="_intelli_photo_gui_8h.html">IntelliPhotoGui.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,111 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IntelliPhoto: intelliphoto/src/Image/IntelliRasterImage.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">IntelliPhoto
&#160;<span id="projectnumber">0.5</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_intelli_raster_image_8cpp.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">IntelliRasterImage.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_intelli_raster_image_8h_source.html">Image/IntelliRasterImage.h</a>&quot;</code><br />
<code>#include &lt;QPainter&gt;</code><br />
<code>#include &lt;QRect&gt;</code><br />
<code>#include &lt;QDebug&gt;</code><br />
</div>
<p><a href="_intelli_raster_image_8cpp_source.html">Go to the source code of this file.</a></p>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_8db5f55022e7670536cbc9a6a1d6f01c.html">intelliphoto</a></li><li class="navelem"><a class="el" href="dir_83a4347d11f2ba6343d546ab133722d2.html">src</a></li><li class="navelem"><a class="el" href="dir_544f9dcb748f922e4bb3be2540380bf2.html">Image</a></li><li class="navelem"><a class="el" href="_intelli_raster_image_8cpp.html">IntelliRasterImage.cpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,35 @@
digraph "intelliphoto/src/Image/IntelliRasterImage.cpp"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="intelliphoto/src/Image\l/IntelliRasterImage.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="Image/IntelliRasterImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_raster_image_8h.html",tooltip=" "];
Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="Image/IntelliImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_image_8h.html",tooltip=" "];
Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="QImage",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node6 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node3 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 [label="QSize",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node3 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node8 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node3 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node9 [label="vector",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node3 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 [label="IntelliHelper/IntelliTriangulation.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_triangulation_8h.html",tooltip=" "];
Node10 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 [label="IntelliHelper/IntelliRender\lSettings.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_render_settings_8h.html",tooltip=" "];
Node1 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node12 [label="QPainter",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node1 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node13 [label="QRect",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node1 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node14 [label="QDebug",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
}

View File

@@ -0,0 +1,170 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IntelliPhoto: intelliphoto/src/Image/IntelliRasterImage.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">IntelliPhoto
&#160;<span id="projectnumber">0.5</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_intelli_raster_image_8cpp_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">IntelliRasterImage.cpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="_intelli_raster_image_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_intelli_raster_image_8h.html">Image/IntelliRasterImage.h</a>&quot;</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &lt;QPainter&gt;</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &lt;QRect&gt;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;QDebug&gt;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; </div>
<div class="line"><a name="l00006"></a><span class="lineno"><a class="line" href="class_intelli_raster_image.html#ae779b571372296f1922af818ba003413"> 6</a></span>&#160;<a class="code" href="class_intelli_raster_image.html#ae779b571372296f1922af818ba003413">IntelliRasterImage::IntelliRasterImage</a>(<span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, <span class="keywordtype">bool</span> fastRendererOn)</div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; : <a class="code" href="class_intelli_image.html">IntelliImage</a>(width, height, fastRendererOn){</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <a class="code" href="class_intelli_image.html#ac460f75e1fa7e44b00a65e7fddac5b80">TypeOfImage</a> = <a class="code" href="class_intelli_image.html#a5274ce9fcdcb2659c148e7ff916b680eadd5823fd73c42c0154fa2abbd70283b9">IntelliImage::ImageType::RASTERIMAGE</a>;</div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; this-&gt;<a class="code" href="class_intelli_image.html#adade0f6990152f09d953067a51511b9c">fastRenderer</a> = fastRendererOn;</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;}</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; </div>
<div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="class_intelli_raster_image.html#a844a2b58c43f7e01f2ca116286371bc8"> 12</a></span>&#160;<a class="code" href="class_intelli_raster_image.html#a844a2b58c43f7e01f2ca116286371bc8">IntelliRasterImage::~IntelliRasterImage</a>(){</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; </div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;}</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; </div>
<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="class_intelli_raster_image.html#a8f901301b106504de3c27308ade897dc"> 16</a></span>&#160;<a class="code" href="class_intelli_image.html">IntelliImage</a>* <a class="code" href="class_intelli_raster_image.html#a8f901301b106504de3c27308ade897dc">IntelliRasterImage::getDeepCopy</a>(){</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <a class="code" href="class_intelli_raster_image.html">IntelliRasterImage</a>* raster = <span class="keyword">new</span> <a class="code" href="class_intelli_raster_image.html#ae779b571372296f1922af818ba003413">IntelliRasterImage</a>(<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>.width(), <a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>.height(), <span class="keyword">false</span>);</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; raster-&gt;<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>.fill(Qt::transparent);</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; raster-&gt;<a class="code" href="class_intelli_image.html#ac460f75e1fa7e44b00a65e7fddac5b80">TypeOfImage</a> = <a class="code" href="class_intelli_image.html#a5274ce9fcdcb2659c148e7ff916b680eadd5823fd73c42c0154fa2abbd70283b9">IntelliImage::ImageType::RASTERIMAGE</a>;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordflow">return</span> raster;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;}</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; </div>
<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="class_intelli_raster_image.html#a87cf2d360c129d64a5db0db85818eb60"> 23</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_intelli_raster_image.html#a87cf2d360c129d64a5db0db85818eb60">IntelliRasterImage::calculateVisiblity</a>(){</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="comment">// not used in raster image</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;}</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; </div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="class_intelli_raster_image.html#a612d79124f0e2c158a4f0abbe4b5f97f"> 27</a></span>&#160;QImage <a class="code" href="class_intelli_raster_image.html#ae43393397b0141a8033fe34d3a1b1884">IntelliRasterImage::getDisplayable</a>(<span class="keywordtype">int</span> alpha){</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_intelli_raster_image.html#ae43393397b0141a8033fe34d3a1b1884">getDisplayable</a>(<a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>.size(), alpha);</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;}</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="class_intelli_raster_image.html#ae43393397b0141a8033fe34d3a1b1884"> 31</a></span>&#160;QImage <a class="code" href="class_intelli_raster_image.html#ae43393397b0141a8033fe34d3a1b1884">IntelliRasterImage::getDisplayable</a>(<span class="keyword">const</span> QSize&amp; displaySize, <span class="keywordtype">int</span> alpha){</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; QImage copy = <a class="code" href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">imageData</a>;</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_intelli_image.html#adade0f6990152f09d953067a51511b9c">fastRenderer</a>) {</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; copy = copy.convertToFormat(QImage::Format_ARGB32);</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; }</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> y = 0; y&lt;copy.height(); y++) {</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> x = 0; x&lt;copy.width(); x++) {</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; QColor clr = copy.pixelColor(x,y);</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; clr.setAlpha(std::min(alpha, clr.alpha()));</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; copy.setPixelColor(x,y, clr);</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; }</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; }</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_intelli_image.html#adade0f6990152f09d953067a51511b9c">fastRenderer</a>) {</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; copy = copy.convertToFormat(QImage::Format_Indexed8);</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; }</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">return</span> copy.scaled(displaySize,Qt::IgnoreAspectRatio);</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; </div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_intelli_raster_image.html#a6462fa5f94c5e64e9e1f0c4658e0507b"> 49</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_intelli_raster_image.html#a6462fa5f94c5e64e9e1f0c4658e0507b">IntelliRasterImage::setPolygon</a>(<span class="keyword">const</span> std::vector&lt;QPoint&gt;&amp; polygonData){</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; qDebug() &lt;&lt; <span class="stringliteral">&quot;Raster Image has no polygon data &quot;</span> &lt;&lt; polygonData.size() &lt;&lt;<span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;}</div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aclass_intelli_raster_image_html_a844a2b58c43f7e01f2ca116286371bc8"><div class="ttname"><a href="class_intelli_raster_image.html#a844a2b58c43f7e01f2ca116286371bc8">IntelliRasterImage::~IntelliRasterImage</a></div><div class="ttdeci">virtual ~IntelliRasterImage() override</div><div class="ttdoc">An Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_raster_image_8cpp_source.html#l00012">IntelliRasterImage.cpp:12</a></div></div>
<div class="ttc" id="aclass_intelli_raster_image_html_ae779b571372296f1922af818ba003413"><div class="ttname"><a href="class_intelli_raster_image.html#ae779b571372296f1922af818ba003413">IntelliRasterImage::IntelliRasterImage</a></div><div class="ttdeci">IntelliRasterImage(int width, int height, bool fastRendererOn)</div><div class="ttdoc">The Construcor of the IntelliRasterImage. Given the Image dimensions.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_raster_image_8cpp_source.html#l00006">IntelliRasterImage.cpp:6</a></div></div>
<div class="ttc" id="a_intelli_raster_image_8h_html"><div class="ttname"><a href="_intelli_raster_image_8h.html">IntelliRasterImage.h</a></div></div>
<div class="ttc" id="aclass_intelli_raster_image_html_ae43393397b0141a8033fe34d3a1b1884"><div class="ttname"><a href="class_intelli_raster_image.html#ae43393397b0141a8033fe34d3a1b1884">IntelliRasterImage::getDisplayable</a></div><div class="ttdeci">virtual QImage getDisplayable(const QSize &amp;displaySize, int alpha) override</div><div class="ttdoc">A function returning the displayable ImageData in a requested transparence and size.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_raster_image_8cpp_source.html#l00031">IntelliRasterImage.cpp:31</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_ac460f75e1fa7e44b00a65e7fddac5b80"><div class="ttname"><a href="class_intelli_image.html#ac460f75e1fa7e44b00a65e7fddac5b80">IntelliImage::TypeOfImage</a></div><div class="ttdeci">ImageType TypeOfImage</div><div class="ttdoc">The Type, an Image is.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8h_source.html#l00042">IntelliImage.h:42</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_adade0f6990152f09d953067a51511b9c"><div class="ttname"><a href="class_intelli_image.html#adade0f6990152f09d953067a51511b9c">IntelliImage::fastRenderer</a></div><div class="ttdeci">bool fastRenderer</div><div class="ttdoc">fastRenderer is the flag that represents the usage of 8bit pictures.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8h_source.html#l00047">IntelliImage.h:47</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_a5274ce9fcdcb2659c148e7ff916b680eadd5823fd73c42c0154fa2abbd70283b9"><div class="ttname"><a href="class_intelli_image.html#a5274ce9fcdcb2659c148e7ff916b680eadd5823fd73c42c0154fa2abbd70283b9">IntelliImage::ImageType::RASTERIMAGE</a></div></div>
<div class="ttc" id="aclass_intelli_image_html_a2431be82e9e85dd34b62a7f7cba053c2"><div class="ttname"><a href="class_intelli_image.html#a2431be82e9e85dd34b62a7f7cba053c2">IntelliImage::imageData</a></div><div class="ttdeci">QImage imageData</div><div class="ttdoc">The underlying image data.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8h_source.html#l00037">IntelliImage.h:37</a></div></div>
<div class="ttc" id="aclass_intelli_image_html"><div class="ttname"><a href="class_intelli_image.html">IntelliImage</a></div><div class="ttdoc">An abstract class which manages the basic IntelliImage operations.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8h_source.html#l00019">IntelliImage.h:19</a></div></div>
<div class="ttc" id="aclass_intelli_raster_image_html_a8f901301b106504de3c27308ade897dc"><div class="ttname"><a href="class_intelli_raster_image.html#a8f901301b106504de3c27308ade897dc">IntelliRasterImage::getDeepCopy</a></div><div class="ttdeci">virtual IntelliImage * getDeepCopy() override</div><div class="ttdoc">A function that copys all that returns a [allocated] Image.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_raster_image_8cpp_source.html#l00016">IntelliRasterImage.cpp:16</a></div></div>
<div class="ttc" id="aclass_intelli_raster_image_html_a87cf2d360c129d64a5db0db85818eb60"><div class="ttname"><a href="class_intelli_raster_image.html#a87cf2d360c129d64a5db0db85818eb60">IntelliRasterImage::calculateVisiblity</a></div><div class="ttdeci">virtual void calculateVisiblity() override</div><div class="ttdoc">A function that calculates the visibility of the image if a polygon is given. [does nothing in RASTER...</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_raster_image_8cpp_source.html#l00023">IntelliRasterImage.cpp:23</a></div></div>
<div class="ttc" id="aclass_intelli_raster_image_html_a6462fa5f94c5e64e9e1f0c4658e0507b"><div class="ttname"><a href="class_intelli_raster_image.html#a6462fa5f94c5e64e9e1f0c4658e0507b">IntelliRasterImage::setPolygon</a></div><div class="ttdeci">virtual void setPolygon(const std::vector&lt; QPoint &gt; &amp;polygonData) override</div><div class="ttdoc">An abstract function that sets the data of the visible Polygon, if needed.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_raster_image_8cpp_source.html#l00049">IntelliRasterImage.cpp:49</a></div></div>
<div class="ttc" id="aclass_intelli_raster_image_html"><div class="ttname"><a href="class_intelli_raster_image.html">IntelliRasterImage</a></div><div class="ttdoc">The IntelliRasterImage manages a RASTERIMAGE.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_raster_image_8h_source.html#l00009">IntelliRasterImage.h:9</a></div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_8db5f55022e7670536cbc9a6a1d6f01c.html">intelliphoto</a></li><li class="navelem"><a class="el" href="dir_83a4347d11f2ba6343d546ab133722d2.html">src</a></li><li class="navelem"><a class="el" href="dir_544f9dcb748f922e4bb3be2540380bf2.html">Image</a></li><li class="navelem"><a class="el" href="_intelli_raster_image_8cpp.html">IntelliRasterImage.cpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,117 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IntelliPhoto: intelliphoto/src/Image/IntelliRasterImage.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">IntelliPhoto
&#160;<span id="projectnumber">0.5</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_intelli_raster_image_8h.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> </div>
<div class="headertitle">
<div class="title">IntelliRasterImage.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_intelli_image_8h_source.html">Image/IntelliImage.h</a>&quot;</code><br />
</div>
<p><a href="_intelli_raster_image_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_intelli_raster_image.html">IntelliRasterImage</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="class_intelli_raster_image.html" title="The IntelliRasterImage manages a RASTERIMAGE.">IntelliRasterImage</a> manages a RASTERIMAGE. <a href="class_intelli_raster_image.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_8db5f55022e7670536cbc9a6a1d6f01c.html">intelliphoto</a></li><li class="navelem"><a class="el" href="dir_83a4347d11f2ba6343d546ab133722d2.html">src</a></li><li class="navelem"><a class="el" href="dir_544f9dcb748f922e4bb3be2540380bf2.html">Image</a></li><li class="navelem"><a class="el" href="_intelli_raster_image_8h.html">IntelliRasterImage.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,38 @@
digraph "intelliphoto/src/Image/IntelliRasterImage.h"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="intelliphoto/src/Image\l/IntelliRasterImage.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="intelliphoto/src/Image\l/IntelliRasterImage.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_raster_image_8cpp.html",tooltip=" "];
Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="intelliphoto/src/Image\l/IntelliShapedImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_shaped_image_8h.html",tooltip=" "];
Node3 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="intelliphoto/src/Image\l/IntelliShapedImage.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_shaped_image_8cpp.html",tooltip=" "];
Node3 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="intelliphoto/src/Layer\l/PaintingArea.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8h.html",tooltip=" "];
Node5 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node6 [label="intelliphoto/src/GUI\l/IntelliPhotoGui.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_photo_gui_8cpp.html",tooltip=" "];
Node5 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 [label="intelliphoto/src/Layer\l/PaintingArea.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_painting_area_8cpp.html",tooltip=" "];
Node5 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node8 [label="intelliphoto/src/Tool\l/IntelliTool.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_8cpp.html",tooltip=" "];
Node5 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node9 [label="intelliphoto/src/Tool\l/IntelliToolCircle.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_circle_8cpp.html",tooltip=" "];
Node5 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 [label="intelliphoto/src/Tool\l/IntelliToolFloodFill.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_flood_fill_8cpp.html",tooltip=" "];
Node5 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 [label="intelliphoto/src/Tool\l/IntelliToolLine.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_line_8cpp.html",tooltip=" "];
Node5 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node12 [label="intelliphoto/src/Tool\l/IntelliToolPen.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_pen_8cpp.html",tooltip=" "];
Node5 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node13 [label="intelliphoto/src/Tool\l/IntelliToolPlain.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_plain_8cpp.html",tooltip=" "];
Node5 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node14 [label="intelliphoto/src/Tool\l/IntelliToolPolygon.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_polygon_8cpp.html",tooltip=" "];
Node5 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node15 [label="intelliphoto/src/Tool\l/IntelliToolRectangle.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_tool_rectangle_8cpp.html",tooltip=" "];
Node3 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
}

View File

@@ -0,0 +1,27 @@
digraph "intelliphoto/src/Image/IntelliRasterImage.h"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="intelliphoto/src/Image\l/IntelliRasterImage.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="Image/IntelliImage.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_image_8h.html",tooltip=" "];
Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="QImage",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="QPoint",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="QColor",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node6 [label="QSize",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 [label="QWidget",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node2 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node8 [label="vector",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled",tooltip=" "];
Node2 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node9 [label="IntelliHelper/IntelliTriangulation.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_triangulation_8h.html",tooltip=" "];
Node9 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node9 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 [label="IntelliHelper/IntelliRender\lSettings.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$_intelli_render_settings_8h.html",tooltip=" "];
}

View File

@@ -0,0 +1,139 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IntelliPhoto: intelliphoto/src/Image/IntelliRasterImage.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">IntelliPhoto
&#160;<span id="projectnumber">0.5</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_intelli_raster_image_8h_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">IntelliRasterImage.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="_intelli_raster_image_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef INTELLIRASTER_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define INTELLIRASTER_H</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160; </div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_intelli_image_8h.html">Image/IntelliImage.h</a>&quot;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; </div>
<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="class_intelli_raster_image.html"> 9</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_intelli_raster_image.html">IntelliRasterImage</a> : <span class="keyword">public</span> <a class="code" href="class_intelli_image.html">IntelliImage</a> {</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">friend</span> <a class="code" href="class_intelli_tool.html">IntelliTool</a>;</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_intelli_raster_image.html#a87cf2d360c129d64a5db0db85818eb60">calculateVisiblity</a>() <span class="keyword">override</span>;</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<a class="code" href="class_intelli_raster_image.html#ae779b571372296f1922af818ba003413">IntelliRasterImage</a>(<span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, <span class="keywordtype">bool</span> fastRendererOn);</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">virtual</span> <a class="code" href="class_intelli_raster_image.html#a844a2b58c43f7e01f2ca116286371bc8">~IntelliRasterImage</a>() <span class="keyword">override</span>;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">virtual</span> QImage <a class="code" href="class_intelli_raster_image.html#ae43393397b0141a8033fe34d3a1b1884">getDisplayable</a>(<span class="keyword">const</span> QSize&amp; displaySize,<span class="keywordtype">int</span> alpha) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">virtual</span> QImage <a class="code" href="class_intelli_raster_image.html#ae43393397b0141a8033fe34d3a1b1884">getDisplayable</a>(<span class="keywordtype">int</span> alpha=255) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; </div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">virtual</span> <a class="code" href="class_intelli_image.html">IntelliImage</a>* <a class="code" href="class_intelli_raster_image.html#a8f901301b106504de3c27308ade897dc">getDeepCopy</a>() <span class="keyword">override</span>;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; </div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_intelli_raster_image.html#a6462fa5f94c5e64e9e1f0c4658e0507b">setPolygon</a>(<span class="keyword">const</span> std::vector&lt;QPoint&gt;&amp; polygonData) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;};</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="a_intelli_image_8h_html"><div class="ttname"><a href="_intelli_image_8h.html">IntelliImage.h</a></div></div>
<div class="ttc" id="aclass_intelli_raster_image_html_a844a2b58c43f7e01f2ca116286371bc8"><div class="ttname"><a href="class_intelli_raster_image.html#a844a2b58c43f7e01f2ca116286371bc8">IntelliRasterImage::~IntelliRasterImage</a></div><div class="ttdeci">virtual ~IntelliRasterImage() override</div><div class="ttdoc">An Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_raster_image_8cpp_source.html#l00012">IntelliRasterImage.cpp:12</a></div></div>
<div class="ttc" id="aclass_intelli_raster_image_html_ae779b571372296f1922af818ba003413"><div class="ttname"><a href="class_intelli_raster_image.html#ae779b571372296f1922af818ba003413">IntelliRasterImage::IntelliRasterImage</a></div><div class="ttdeci">IntelliRasterImage(int width, int height, bool fastRendererOn)</div><div class="ttdoc">The Construcor of the IntelliRasterImage. Given the Image dimensions.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_raster_image_8cpp_source.html#l00006">IntelliRasterImage.cpp:6</a></div></div>
<div class="ttc" id="aclass_intelli_tool_html"><div class="ttname"><a href="class_intelli_tool.html">IntelliTool</a></div><div class="ttdoc">An abstract class that manages the basic events, like mouse clicks or scrolls events.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_tool_8h_source.html#l00014">IntelliTool.h:14</a></div></div>
<div class="ttc" id="aclass_intelli_raster_image_html_ae43393397b0141a8033fe34d3a1b1884"><div class="ttname"><a href="class_intelli_raster_image.html#ae43393397b0141a8033fe34d3a1b1884">IntelliRasterImage::getDisplayable</a></div><div class="ttdeci">virtual QImage getDisplayable(const QSize &amp;displaySize, int alpha) override</div><div class="ttdoc">A function returning the displayable ImageData in a requested transparence and size.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_raster_image_8cpp_source.html#l00031">IntelliRasterImage.cpp:31</a></div></div>
<div class="ttc" id="aclass_intelli_image_html"><div class="ttname"><a href="class_intelli_image.html">IntelliImage</a></div><div class="ttdoc">An abstract class which manages the basic IntelliImage operations.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_image_8h_source.html#l00019">IntelliImage.h:19</a></div></div>
<div class="ttc" id="aclass_intelli_raster_image_html_a8f901301b106504de3c27308ade897dc"><div class="ttname"><a href="class_intelli_raster_image.html#a8f901301b106504de3c27308ade897dc">IntelliRasterImage::getDeepCopy</a></div><div class="ttdeci">virtual IntelliImage * getDeepCopy() override</div><div class="ttdoc">A function that copys all that returns a [allocated] Image.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_raster_image_8cpp_source.html#l00016">IntelliRasterImage.cpp:16</a></div></div>
<div class="ttc" id="aclass_intelli_raster_image_html_a87cf2d360c129d64a5db0db85818eb60"><div class="ttname"><a href="class_intelli_raster_image.html#a87cf2d360c129d64a5db0db85818eb60">IntelliRasterImage::calculateVisiblity</a></div><div class="ttdeci">virtual void calculateVisiblity() override</div><div class="ttdoc">A function that calculates the visibility of the image if a polygon is given. [does nothing in RASTER...</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_raster_image_8cpp_source.html#l00023">IntelliRasterImage.cpp:23</a></div></div>
<div class="ttc" id="aclass_intelli_raster_image_html_a6462fa5f94c5e64e9e1f0c4658e0507b"><div class="ttname"><a href="class_intelli_raster_image.html#a6462fa5f94c5e64e9e1f0c4658e0507b">IntelliRasterImage::setPolygon</a></div><div class="ttdeci">virtual void setPolygon(const std::vector&lt; QPoint &gt; &amp;polygonData) override</div><div class="ttdoc">An abstract function that sets the data of the visible Polygon, if needed.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_raster_image_8cpp_source.html#l00049">IntelliRasterImage.cpp:49</a></div></div>
<div class="ttc" id="aclass_intelli_raster_image_html"><div class="ttname"><a href="class_intelli_raster_image.html">IntelliRasterImage</a></div><div class="ttdoc">The IntelliRasterImage manages a RASTERIMAGE.</div><div class="ttdef"><b>Definition:</b> <a href="_intelli_raster_image_8h_source.html#l00009">IntelliRasterImage.h:9</a></div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_8db5f55022e7670536cbc9a6a1d6f01c.html">intelliphoto</a></li><li class="navelem"><a class="el" href="dir_83a4347d11f2ba6343d546ab133722d2.html">src</a></li><li class="navelem"><a class="el" href="dir_544f9dcb748f922e4bb3be2540380bf2.html">Image</a></li><li class="navelem"><a class="el" href="_intelli_raster_image_8h.html">IntelliRasterImage.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,108 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IntelliPhoto: intelliphoto/src/IntelliHelper/IntelliRenderSettings.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">IntelliPhoto
&#160;<span id="projectnumber">0.5</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_intelli_render_settings_8cpp.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">IntelliRenderSettings.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_intelli_render_settings_8h_source.html">IntelliRenderSettings.h</a>&quot;</code><br />
</div>
<p><a href="_intelli_render_settings_8cpp_source.html">Go to the source code of this file.</a></p>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_8db5f55022e7670536cbc9a6a1d6f01c.html">intelliphoto</a></li><li class="navelem"><a class="el" href="dir_83a4347d11f2ba6343d546ab133722d2.html">src</a></li><li class="navelem"><a class="el" href="dir_f50aa5156fe016a259583c412dbf440c.html">IntelliHelper</a></li><li class="navelem"><a class="el" href="_intelli_render_settings_8cpp.html">IntelliRenderSettings.cpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
</ul>
</div>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More