-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtext_edit_notmobile.go
67 lines (59 loc) · 1.92 KB
/
text_edit_notmobile.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// +build !ios,!android
package main
import (
"fmt"
"os"
"github.com/therecipe/qt/core"
"github.com/therecipe/qt/printsupport"
"github.com/therecipe/qt/widgets"
)
func (t *TextEdit) filePrintPreview() {
if len(os.Getenv("QT_NO_PRINTER")) == 0 && len(os.Getenv("QT_NO_PRINTDIALOG")) == 0 {
var (
printer = printsupport.NewQPrinter(printsupport.QPrinter__HighResolution)
preview = printsupport.NewQPrintPreviewDialog(printer, t, 0)
)
preview.ConnectPaintRequested(t.printPreview)
preview.Exec()
}
}
func (t *TextEdit) printPreview(printer *printsupport.QPrinter) {
if len(os.Getenv("QT_NO_PRINTER")) == 0 {
t.textEdit.Print(printer)
}
}
func (t *TextEdit) filePrintPdf() {
if len(os.Getenv("QT_NO_PRINTER")) == 0 {
var fileDialog = widgets.NewQFileDialog2(t, "Export PDF", "", "")
fileDialog.SetAcceptMode(widgets.QFileDialog__AcceptSave)
fileDialog.SetMimeTypeFilters([]string{"application/pdf"})
fileDialog.SetDefaultSuffix("pdf")
if fileDialog.Exec() != int(widgets.QDialog__Accepted) {
return
}
var (
fileName = fileDialog.SelectedFiles()[0]
printer = printsupport.NewQPrinter(printsupport.QPrinter__HighResolution)
)
printer.SetOutputFormat(printsupport.QPrinter__PdfFormat)
printer.SetOutputFileName(fileName)
t.textEdit.Document().Print(printer)
t.StatusBar().ShowMessage(fmt.Sprintf("Exported %v", core.QDir_ToNativeSeparators(fileName)), 0)
}
}
func (t *TextEdit) filePrint() {
if len(os.Getenv("QT_NO_PRINTER")) == 0 && len(os.Getenv("QT_NO_PRINTDIALOG")) == 0 {
var (
printer = printsupport.NewQPrinter(printsupport.QPrinter__HighResolution)
dlg = printsupport.NewQPrintDialog(printer, t)
)
if t.textEdit.TextCursor().HasSelection() {
dlg.SetOption(printsupport.QAbstractPrintDialog__PrintSelection, true)
}
dlg.SetWindowTitle("Print Document")
if dlg.Exec() == int(widgets.QDialog__Accepted) {
t.textEdit.Print(printer)
}
printer.DestroyQPrinter()
}
}