#include <mainwindow.h>
Public Types | |
| enum | { maxRecentFiles = 100 } |
Public Slots | |
| void | createNewPage () |
| void | openFiles () |
| void | openFile (QString Str) |
| void | openRecentFile () |
| void | POUInfo () |
| void | alterPOUType () |
| void | showSessions () |
| void | saveSession () |
| void | savePage () |
| void | savePageAs () |
| void | batchConverter () |
| void | print () |
| void | closeAllPages () |
| void | find () |
| void | windowsAlignHor () |
| void | windowsAlignVer () |
| void | setCurrentDeclarationVisible () |
| void | setFileListVisible () |
| void | showFileView () |
| void | openPrefDialog () |
| void | about () |
| void | showHelpBrowser () |
| void | HelpBubbles () |
| void | sendBugReport () |
| void | clearRecentFilesAction () |
| QPoint | currentPrgLngToolBarPos () |
| void | fillRecentFilesAction (int i) |
| void | insertCMD () |
| void | insertFB () |
| void | retranslateUi () |
| void | setCurrentPrgLngToolBarPos (QPoint p) |
| void | setInterfaceItemsEnabled () |
| void | switchPRGLang () |
| void | switchPRGLangToolBars (QString Str) |
| void | updateDeclarationsVisible (int i) |
| void | updateMainToolBarVisible (bool visible) |
| void | updateStatusBar () |
Signals | |
| void | fileType_modified () |
| signal file/block type modified | |
Public Member Functions | |
| MainWindow (QWidget *parent=0) | |
| virtual | ~MainWindow () |
Public Attributes | |
| QString | PROJECT_NAME |
| project name | |
| QString | VERSION |
| current project version | |
| QString | BUILD |
| current project version build | |
| QString | PROJECT_URL |
| project web url | |
| QString | PROJECT_MAIL |
| project e-mail | |
| bool | PRGLangToolBarsVis |
| visible flag for programming language toolbars | |
| QAction * | recentFilesAction [maxRecentFiles] |
| action file menu recent files, size=100 | |
| QMenu * | fileMenu |
| file menu | |
| QMenu * | fileSubMenu1 |
| file sub menu NEW | |
| QMenu * | fileSubMenu2 |
| file sub menu ALTER POU TYPE | |
| QMenu * | fileSubMenu3 |
| file sub menu SESSIONS | |
| QMenu * | fileSubMenuRecentFiles |
| file sub menu FILE TRASH | |
| QMenu * | editMenu |
| edit menu | |
| QMenu * | viewMenu |
| view menu | |
| QMenu * | toolsMenu |
| tools menu | |
| QMenu * | toolsSubMenu1 |
| tools sub menu PROGRAMMING LANGUAGES | |
| QMenu * | helpMenu |
| help menu | |
| QToolBar * | toolBarMain |
| toolbar main | |
| QToolBar * | toolBarAWL |
| toolbar for IEC61131-3 instruction list (IL) | |
| QToolBar * | toolBarSAWL |
| toolbar for Siemens S7 instruction list (IL) | |
| QToolBar * | toolBarST |
| toolbar for IEC61131-3 structured text (ST) | |
Private Member Functions | |
| void | dragEnterEvent (QDragEnterEvent *event) |
| void | dropEvent (QDropEvent *event) |
| void | createActions () |
| void | createMenus () |
| void | createToolBars () |
| void | createStatusBar () |
| void | setTypeData (int Type) |
Private Attributes | |
| QAction * | newPLC_PRGAction |
| action file menu new PROGRAM page | |
| QAction * | newPLC_FBAction |
| action file menu new FUNTION_BLOCK page | |
| QAction * | newPLC_FcAction |
| action file menu new FUNCTION page | |
| QAction * | newPLC_VARAction |
| action file menu new GLOBAL_VAR page | |
| QAction * | openAction |
| action file menu show file open dialog | |
| QAction * | POUInfoAction |
| action file menu show POU info dialog | |
| QAction * | alterToPrgAction |
| action file menu alter POU to PROGRAM | |
| QAction * | alterToFBAction |
| action file menu alter POU to FUNTION_BLOCK | |
| QAction * | alterToFcnAction |
| action file menu alter POU to FUNCTION | |
| QAction * | manageSessionsAction |
| action file menu show session dialog | |
| QAction * | saveSessionsAction |
| action file menu open save session dialog to save current page as session | |
| QAction * | saveAction |
| action file menu save current file | |
| QAction * | saveAsAction |
| action file menu open save file dialog | |
| QAction * | batchConverterAction |
| action file menu open batch converter dialog | |
| QAction * | printAction |
| action file menu open print dialog | |
| QAction * | exportPDFAction |
| action file menu open PDF dialog | |
| QAction * | closePageAction |
| action file menu close current page | |
| QAction * | closeAllPagesAction |
| action file menu close all pages | |
| QAction * | exitAction |
| action file menu quit application | |
| QAction * | undoAction |
| action edit menu undo | |
| QAction * | redoAction |
| action edit menu redo | |
| QAction * | cutAction |
| action edit menu cut | |
| QAction * | copyAction |
| action edit menu copy | |
| QAction * | pasteAction |
| action edit menu paste | |
| QAction * | selectAllAction |
| action edit menu select all | |
| QAction * | findAction |
| action edit menu find & replace | |
| QAction * | windowsHorAction |
| action view menu set windows to horizontal alignment | |
| QAction * | windowsVerAction |
| action view menu set windows to vertical alignment | |
| QAction * | declVisibleAction |
| action view set declaration input window visible | |
| QAction * | MinimizeAction |
| action view minimize application window | |
| QAction * | ZoomAction |
| action view zoom application window to full screen | |
| QAction * | fileListVisibleAction |
| action view set file list visible | |
| QAction * | changeInputWindowAction |
| action view change input window for current page | |
| QAction * | fileViewAction |
| action view show output file in seperate window | |
| QAction * | PrefAction |
| action tools menu show preferences dialog | |
| QAction * | prglng_AWLAction |
| action tools menu change programming language to IL | |
| QAction * | prglng_STAction |
| action tools menu change programming language to ST | |
| QAction * | insertFBAction |
| action tools menu insert function block | |
| QAction * | aboutAction |
| action help menu show project about dialog | |
| QAction * | aboutQtAction |
| action help menu show Qt about dialog | |
| QAction * | F1Action |
| action help menu show F1/help browser | |
| QAction * | helpBubblesAction |
| action help menu show help bubbles | |
| QAction * | bugReportAction |
| action help menu open e-mail to send bug report | |
| QAction * | AWL_LDAction |
| action insert LD command for instruction list language | |
| QAction * | AWL_STAction |
| action insert ST command for instruction list language | |
| QAction * | AWL_JMPAction |
| action insert JMP command for instruction list language | |
| QAction * | AWL_FBCALAction |
| action insert FB call for instruction list language | |
| QAction * | SAWL_ANDAction |
| action insert AND command for siemens instruction list language | |
| QAction * | SAWL_ORAction |
| action insert OR command for siemens instruction list language | |
| QAction * | SAWL_AssignAction |
| action insert assignment sign for siemens instruction list language | |
| QAction * | SAWL_SPAAction |
| action insert SPA command for siemens instruction list language | |
| QAction * | SAWL_FBCALAction |
| action insert FB call for siemens instruction list language | |
| QAction * | SAWL_NWAction |
| action insert NETWORK block for siemens instruction list language | |
| QAction * | ST_IfThenElseAction |
| action insert if then else block for structured text language | |
| QAction * | ST_CaseAction |
| action insert case block for structured text language | |
| QAction * | ST_ForToDoAction |
| action insert for to do block for structured text language | |
| QAction * | ST_WhileDoAction |
| action insert while do block for structured text language | |
| QAction * | ST_RepeatUntilAction |
| action insert repeat until block for structured text language | |
| QAction * | ST_AssignAction |
| action insert assignment sign for structured text language | |
| QAction * | ST_FBCALAction |
| action insert FB call for structured text language | |
| QLabel * | st_page_no |
| status bar label for number of page in comp. to all pages | |
| QLabel * | st_fileType |
| status bar label for file/block type of current page | |
| QLabel * | st_PRG_LNG |
| status bar label for programming language of current page | |
| QLabel * | st_Dec_cursor_pos |
| status bar label for cursor position at decalration section | |
| QLabel * | st_Ins_cursor_pos |
| status bar label for cursor position at instruction section | |
| QString | FncTypeStr |
| current cuntion type string | |
| QString | msg_head_about |
| message head for about dialog | |
| QString | msg_text_about |
| message text for about dialog | |
| QString | msg_subject_bugreport |
| message e-mail subject for bug report | |
| QString | msg_body_bugreport |
| message e-mail body for bug report | |
| QString | msg_text_POUaltered |
| message information for POU altered | |
| QString | msg_error_POUaltered |
| message error for POU altering | |
| QString | msg_head_fileopen |
| message head file open dialog | |
| QString | msg_ext_fileopen |
| message extension for file open dialog | |
| QString | msg_error_fileopen |
| message error file open | |
| QString | msg_head_filesave |
| message head for file save dialog | |
| QString | msg_ext_filesave |
| message extension for file save dialog | |
| QString | msg_error_filesave |
| message error file save | |
| QString | msg_printedwith |
| message printed with, will be included on head of print outs | |
| QString | msg_printing |
| message printing active | |
| QString | msg_head_PDFExport |
| message head for PDF export dialog | |
| QString | msg_head_preferror |
| message head for preferences error | |
| QString | msg_text_preferror |
| message text for preferences error | |
| QString | msg_error_prototypesave |
| message error for prototype storage | |
| QString | msg_page_no |
| message page number in statusbar | |
| QString | msg_head_sessioncreate |
| message save session | |
| PageCtrl * | pageCtrl1 |
| instance of PageCtrl class | |
| PrefDialog * | prefDialog |
| instance of PrefDialog class | |
| FileViewDialog * | fileViewDialog |
| instance of FileViewDialog class | |
| SessionManager * | sessionManager |
| instance of SessionManager class | |
| Prototype * | prototype |
| instance of Prototype class | |
| PrintPrepare * | printPrepare |
| instance of PrintPrepare class | |
| ImportExport * | importExport |
| instance of ImportExport class | |
| POUInfoDialog * | pouInfoDialog |
| instance of POUInfoDialog class | |
| FindDialog * | findDialog |
| instance of FindDialog class | |
| FBDialog * | fbDialog |
| instance of FBDialog class | |
| FncDialog * | fncDialog |
| instance of FcnDialog class | |
| HelpWidget * | helpBrowser |
| instance of HelpWidget class | |
| MainWindow::MainWindow | ( | QWidget * | parent = 0 |
) |
creating function
setting project data and window icon
call create functions for actions, menus and toolbars
instantiate project classes
| MainWindow::~MainWindow | ( | ) | [virtual] |
virtual destructor
| void MainWindow::about | ( | ) | [slot] |
create and call about dialog
| void MainWindow::alterPOUType | ( | ) | [slot] |
alter POU type to Prg, FB or Fcn
| void MainWindow::batchConverter | ( | ) | [slot] |
call batch converter function
| void MainWindow::clearRecentFilesAction | ( | ) | [slot] |
clear recent files action
| void MainWindow::closeAllPages | ( | ) | [slot] |
delete all pages
| void MainWindow::createActions | ( | ) | [private] |
create actions for menus and toolbars
| void MainWindow::createMenus | ( | ) | [private] |
create menu items
| void MainWindow::createNewPage | ( | ) | [slot] |
create new page as PRG, FB, F or VAR list by detecing the calling action
| void MainWindow::createStatusBar | ( | ) | [private] |
create status bar
| void MainWindow::createToolBars | ( | ) | [private] |
create toolbars
| QPoint MainWindow::currentPrgLngToolBarPos | ( | ) | [slot] |
return current programming-language-tollbar position
| void MainWindow::dragEnterEvent | ( | QDragEnterEvent * | event | ) | [private] |
drag&drop acceptance for dragged "urls" (files)
| void MainWindow::dropEvent | ( | QDropEvent * | event | ) | [private] |
drop event reimplementation for file opening
| void MainWindow::fileType_modified | ( | ) | [signal] |
signal file/block type modified
| void MainWindow::fillRecentFilesAction | ( | int | i | ) | [slot] |
fill recent files action with list items from class PageCtrl
| i | is only needed for signal-slot handling |
| void MainWindow::find | ( | ) | [slot] |
call find & replace dialog
| void MainWindow::HelpBubbles | ( | ) | [slot] |
hide & show tool tips
| void MainWindow::insertCMD | ( | ) | [slot] |
insert commands by detected calling action from toolbars
| void MainWindow::insertFB | ( | ) | [slot] |
insert function block call model
| void MainWindow::openFile | ( | QString | Str | ) | [slot] |
open single file implemantation from string, with add. prefDialog->savePref() to save file path;
the function is used by "singleApp" instance to open files by mouse "right-click"
| void MainWindow::openFiles | ( | ) | [slot] |
open files implementation with add. call prefDialog->savePref() to save file path
| void MainWindow::openPrefDialog | ( | ) | [slot] |
open preferences dialog
| void MainWindow::openRecentFile | ( | ) | [slot] |
open recent file from FILE menu
| void MainWindow::POUInfo | ( | ) | [slot] |
call POU info dialog
| void MainWindow::print | ( | ) | [slot] |
print current page
| void MainWindow::retranslateUi | ( | ) | [slot] |
retranslate Ui elements for mainwindow
| void MainWindow::savePage | ( | ) | [slot] |
save actual page, with add. call prefDialog->savePref() to save file path
| void MainWindow::savePageAs | ( | ) | [slot] |
save actual page using the save dialog, with add. call prefDialog->savePref() to save file path
(enforces called save routine to store GLOBAL_VARIABEL_LISTs as CoDeSys .EXP only)
| void MainWindow::saveSession | ( | ) | [slot] |
save file links to actual pages as session
| void MainWindow::sendBugReport | ( | ) | [slot] |
send a prepared bug report to the developer
| void MainWindow::setCurrentDeclarationVisible | ( | ) | [slot] |
show & hide declarations section
| void MainWindow::setCurrentPrgLngToolBarPos | ( | QPoint | p | ) | [slot] |
set programming language toolbar position
| void MainWindow::setFileListVisible | ( | ) | [slot] |
show & hide file list
| void MainWindow::setInterfaceItemsEnabled | ( | ) | [slot] |
set enable property for some menu & toolbar items
| void MainWindow::setTypeData | ( | int | Type | ) | [private] |
set POU type data depending on type input
| void MainWindow::showFileView | ( | ) | [slot] |
show file content in seperate window
| void MainWindow::showHelpBrowser | ( | ) | [slot] |
show help browser
| void MainWindow::showSessions | ( | ) | [slot] |
call session manager
| void MainWindow::switchPRGLang | ( | ) | [slot] |
switch progrmaming language by mainwindow menu items
| void MainWindow::switchPRGLangToolBars | ( | QString | Str | ) | [slot] |
switch progrmaming language toolbars
| void MainWindow::updateDeclarationsVisible | ( | int | i | ) | [slot] |
update declarations visible status in menu view
| void MainWindow::updateMainToolBarVisible | ( | bool | visible | ) | [slot] |
update main toolbar visible status
| void MainWindow::updateStatusBar | ( | ) | [slot] |
update statusbar
| void MainWindow::windowsAlignHor | ( | ) | [slot] |
set window alignment to horizontal
| void MainWindow::windowsAlignVer | ( | ) | [slot] |
set window alignment to vertical
QAction* MainWindow::aboutAction [private] |
action help menu show project about dialog
QAction* MainWindow::aboutQtAction [private] |
action help menu show Qt about dialog
QAction* MainWindow::alterToFBAction [private] |
action file menu alter POU to FUNTION_BLOCK
QAction* MainWindow::alterToFcnAction [private] |
action file menu alter POU to FUNCTION
QAction* MainWindow::alterToPrgAction [private] |
action file menu alter POU to PROGRAM
QAction* MainWindow::AWL_FBCALAction [private] |
action insert FB call for instruction list language
QAction* MainWindow::AWL_JMPAction [private] |
action insert JMP command for instruction list language
QAction* MainWindow::AWL_LDAction [private] |
action insert LD command for instruction list language
QAction* MainWindow::AWL_STAction [private] |
action insert ST command for instruction list language
QAction* MainWindow::batchConverterAction [private] |
action file menu open batch converter dialog
QAction* MainWindow::bugReportAction [private] |
action help menu open e-mail to send bug report
| QString MainWindow::BUILD |
current project version build
QAction* MainWindow::changeInputWindowAction [private] |
action view change input window for current page
QAction* MainWindow::closeAllPagesAction [private] |
action file menu close all pages
QAction* MainWindow::closePageAction [private] |
action file menu close current page
QAction* MainWindow::copyAction [private] |
action edit menu copy
QAction* MainWindow::cutAction [private] |
action edit menu cut
QAction* MainWindow::declVisibleAction [private] |
action view set declaration input window visible
| QMenu* MainWindow::editMenu |
edit menu
QAction* MainWindow::exitAction [private] |
action file menu quit application
QAction* MainWindow::exportPDFAction [private] |
action file menu open PDF dialog
QAction* MainWindow::F1Action [private] |
action help menu show F1/help browser
FBDialog* MainWindow::fbDialog [private] |
instance of FBDialog class
QAction* MainWindow::fileListVisibleAction [private] |
action view set file list visible
| QMenu* MainWindow::fileMenu |
file menu
| QMenu* MainWindow::fileSubMenu1 |
file sub menu NEW
| QMenu* MainWindow::fileSubMenu2 |
file sub menu ALTER POU TYPE
| QMenu* MainWindow::fileSubMenu3 |
file sub menu SESSIONS
file sub menu FILE TRASH
QAction* MainWindow::fileViewAction [private] |
action view show output file in seperate window
FileViewDialog* MainWindow::fileViewDialog [private] |
instance of FileViewDialog class
QAction* MainWindow::findAction [private] |
action edit menu find & replace
FindDialog* MainWindow::findDialog [private] |
instance of FindDialog class
FncDialog* MainWindow::fncDialog [private] |
instance of FcnDialog class
QString MainWindow::FncTypeStr [private] |
current cuntion type string
HelpWidget* MainWindow::helpBrowser [private] |
instance of HelpWidget class
QAction* MainWindow::helpBubblesAction [private] |
action help menu show help bubbles
| QMenu* MainWindow::helpMenu |
help menu
ImportExport* MainWindow::importExport [private] |
instance of ImportExport class
QAction* MainWindow::insertFBAction [private] |
action tools menu insert function block
QAction* MainWindow::manageSessionsAction [private] |
action file menu show session dialog
QAction* MainWindow::MinimizeAction [private] |
action view minimize application window
QString MainWindow::msg_body_bugreport [private] |
message e-mail body for bug report
QString MainWindow::msg_error_fileopen [private] |
message error file open
QString MainWindow::msg_error_filesave [private] |
message error file save
QString MainWindow::msg_error_POUaltered [private] |
message error for POU altering
QString MainWindow::msg_error_prototypesave [private] |
message error for prototype storage
QString MainWindow::msg_ext_fileopen [private] |
message extension for file open dialog
QString MainWindow::msg_ext_filesave [private] |
message extension for file save dialog
QString MainWindow::msg_head_about [private] |
message head for about dialog
QString MainWindow::msg_head_fileopen [private] |
message head file open dialog
QString MainWindow::msg_head_filesave [private] |
message head for file save dialog
QString MainWindow::msg_head_PDFExport [private] |
message head for PDF export dialog
QString MainWindow::msg_head_preferror [private] |
message head for preferences error
QString MainWindow::msg_head_sessioncreate [private] |
message save session
QString MainWindow::msg_page_no [private] |
message page number in statusbar
QString MainWindow::msg_printedwith [private] |
message printed with, will be included on head of print outs
QString MainWindow::msg_printing [private] |
message printing active
QString MainWindow::msg_subject_bugreport [private] |
message e-mail subject for bug report
QString MainWindow::msg_text_about [private] |
message text for about dialog
QString MainWindow::msg_text_POUaltered [private] |
message information for POU altered
QString MainWindow::msg_text_preferror [private] |
message text for preferences error
QAction* MainWindow::newPLC_FBAction [private] |
action file menu new FUNTION_BLOCK page
QAction* MainWindow::newPLC_FcAction [private] |
action file menu new FUNCTION page
QAction* MainWindow::newPLC_PRGAction [private] |
action file menu new PROGRAM page
QAction* MainWindow::newPLC_VARAction [private] |
action file menu new GLOBAL_VAR page
QAction* MainWindow::openAction [private] |
action file menu show file open dialog
PageCtrl* MainWindow::pageCtrl1 [private] |
instance of PageCtrl class
QAction* MainWindow::pasteAction [private] |
action edit menu paste
QAction* MainWindow::POUInfoAction [private] |
action file menu show POU info dialog
POUInfoDialog* MainWindow::pouInfoDialog [private] |
instance of POUInfoDialog class
QAction* MainWindow::PrefAction [private] |
action tools menu show preferences dialog
PrefDialog* MainWindow::prefDialog [private] |
instance of PrefDialog class
visible flag for programming language toolbars
QAction* MainWindow::prglng_AWLAction [private] |
action tools menu change programming language to IL
QAction* MainWindow::prglng_STAction [private] |
action tools menu change programming language to ST
QAction* MainWindow::printAction [private] |
action file menu open print dialog
PrintPrepare* MainWindow::printPrepare [private] |
instance of PrintPrepare class
| QString MainWindow::PROJECT_MAIL |
project e-mail
| QString MainWindow::PROJECT_NAME |
project name
| QString MainWindow::PROJECT_URL |
project web url
Prototype* MainWindow::prototype [private] |
instance of Prototype class
| QAction* MainWindow::recentFilesAction[maxRecentFiles] |
action file menu recent files, size=100
QAction* MainWindow::redoAction [private] |
action edit menu redo
QAction* MainWindow::saveAction [private] |
action file menu save current file
QAction* MainWindow::saveAsAction [private] |
action file menu open save file dialog
QAction* MainWindow::saveSessionsAction [private] |
action file menu open save session dialog to save current page as session
QAction* MainWindow::SAWL_ANDAction [private] |
action insert AND command for siemens instruction list language
QAction* MainWindow::SAWL_AssignAction [private] |
action insert assignment sign for siemens instruction list language
QAction* MainWindow::SAWL_FBCALAction [private] |
action insert FB call for siemens instruction list language
QAction* MainWindow::SAWL_NWAction [private] |
action insert NETWORK block for siemens instruction list language
QAction* MainWindow::SAWL_ORAction [private] |
action insert OR command for siemens instruction list language
QAction* MainWindow::SAWL_SPAAction [private] |
action insert SPA command for siemens instruction list language
QAction* MainWindow::selectAllAction [private] |
action edit menu select all
SessionManager* MainWindow::sessionManager [private] |
instance of SessionManager class
QAction* MainWindow::ST_AssignAction [private] |
action insert assignment sign for structured text language
QAction* MainWindow::ST_CaseAction [private] |
action insert case block for structured text language
QLabel* MainWindow::st_Dec_cursor_pos [private] |
status bar label for cursor position at decalration section
QAction* MainWindow::ST_FBCALAction [private] |
action insert FB call for structured text language
QLabel* MainWindow::st_fileType [private] |
status bar label for file/block type of current page
QAction* MainWindow::ST_ForToDoAction [private] |
action insert for to do block for structured text language
QAction* MainWindow::ST_IfThenElseAction [private] |
action insert if then else block for structured text language
QLabel* MainWindow::st_Ins_cursor_pos [private] |
status bar label for cursor position at instruction section
QLabel* MainWindow::st_page_no [private] |
status bar label for number of page in comp. to all pages
QLabel* MainWindow::st_PRG_LNG [private] |
status bar label for programming language of current page
QAction* MainWindow::ST_RepeatUntilAction [private] |
action insert repeat until block for structured text language
QAction* MainWindow::ST_WhileDoAction [private] |
action insert while do block for structured text language
| QToolBar* MainWindow::toolBarAWL |
toolbar for IEC61131-3 instruction list (IL)
| QToolBar* MainWindow::toolBarMain |
toolbar main
| QToolBar* MainWindow::toolBarSAWL |
toolbar for Siemens S7 instruction list (IL)
| QToolBar* MainWindow::toolBarST |
toolbar for IEC61131-3 structured text (ST)
| QMenu* MainWindow::toolsMenu |
tools menu
| QMenu* MainWindow::toolsSubMenu1 |
tools sub menu PROGRAMMING LANGUAGES
QAction* MainWindow::undoAction [private] |
action edit menu undo
| QString MainWindow::VERSION |
current project version
| QMenu* MainWindow::viewMenu |
view menu
QAction* MainWindow::windowsHorAction [private] |
action view menu set windows to horizontal alignment
QAction* MainWindow::windowsVerAction [private] |
action view menu set windows to vertical alignment
QAction* MainWindow::ZoomAction [private] |
action view zoom application window to full screen
1.5.8