diff --git a/app.py b/app.py index dbaf0d8..cfcf352 100755 --- a/app.py +++ b/app.py @@ -22,7 +22,7 @@ from PyQt5.QtWebKitWidgets import QWebPage, QWebView, QWebInspector import json import git -from classes import server, compiler, view, content +from classes import server, compiler, design, content class Core(): def __init__(self, parent=None): @@ -252,12 +252,12 @@ class MainWindow(QMainWindow): # } # """) - self.viewstack = view.ViewStack(self.core) + self.designstack = design.DesignStack(self.core) self.contentstack = content.ContentStack(self.core) self.versionstack = QLabel("Version (git).") - self.mainstack.addWidget(self.viewstack) + self.mainstack.addWidget(self.designstack) self.mainstack.addWidget(self.contentstack) self.mainstack.addWidget(self.versionstack) diff --git a/classes/view.py b/classes/view.py deleted file mode 100644 index 9d58c5e..0000000 --- a/classes/view.py +++ /dev/null @@ -1,125 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -import sys, os, re - -from PyQt5 import QtCore -from PyQt5.QtCore import QUrl -from PyQt5.QtGui import QKeySequence, QFont, QSyntaxHighlighter -from PyQt5.QtWidgets import QWidget, QLabel, QTabWidget, QVBoxLayout, QHBoxLayout, QSplitter, QPlainTextEdit, QShortcut -from PyQt5.QtWebKit import QWebSettings -from PyQt5.QtWebKitWidgets import QWebView, QWebInspector - - -class WebkitView(QWebView): - def __init__(self, port): - self.port = port - self.view = QWebView.__init__(self) - self.load(QUrl('http://localhost:'+str(self.port))) - self.settings().setAttribute(QWebSettings.DeveloperExtrasEnabled, True) - # self.settings().setAttribute(QWebSettings.PluginsEnabled, True) - - -class WebkitInspector(QWebInspector): - def __init__(self, webkitview): - super(WebkitInspector, self).__init__() - self.webkitview = webkitview - self.setPage(self.webkitview.page()) - # TODO: webkitinspector is disappearing when chaging tabs - -class CodeEditor(QPlainTextEdit): - def __init__(self, core, tabs, file=None): - super(CodeEditor, self).__init__() - self.core = core - self.tabs = tabs - # self.file = file - self.file = os.path.join(self.core.cwd,file) - - self.insertPlainText(open(self.file, 'r').read()) - self.changed = False - self.textChanged.connect(self.onTextChanged) - - self.shortcut = QShortcut(QKeySequence("Ctrl+s"), self) - self.shortcut.activated.connect(self.save) - - def onTextChanged(self): - # print('textChanged') - # print(self.toPlainText()) - # open(self.file, 'w').write(self.toPlainText()) - if not self.changed: - self.changed = True - i = self.tabs.currentIndex() - self.tabs.setTabText(i, "* "+self.tabs.tabText(i)) - - def save(self): - if self.changed: - open(self.file, 'w').write(self.toPlainText()) - i = self.tabs.currentIndex() - self.tabs.setTabText(i, re.sub(r'^\*\s', '', self.tabs.tabText(i))) - self.changed = False - # TODO: how to combine file save and project save - - -class Editor(QWidget): - def __init__(self, core): - super(Editor, self).__init__() - self.core = core - - self.layout = QVBoxLayout(self) - self.layout.setContentsMargins(0,0,0,0) - - # Initialize tab screen - self.tabs = QTabWidget() - - self.scsstab = CodeEditor(core, self.tabs, 'assets/scss/styles.scss') - self.jstab = CodeEditor(core, self.tabs, 'assets/js/script.js') - - # Add tabs - self.tabs.addTab(self.scsstab,"scss") - self.tabs.addTab(self.jstab,"js") - - # Add tabs to widget - self.layout.addWidget(self.tabs) - self.setLayout(self.layout) - - # font = QFont() - # font.setFamily('Courier') - # font.setFixedPitch(True) - # font.setPointSize(10) - # self.setFont(font) - # self.highlighter = Highlighter(self.document()) - # https://pypi.python.org/pypi/QScintilla/2.9.2 - - -class ViewStack(QWidget): - def __init__(self, core): - super(ViewStack, self).__init__() - - # self.grid = QGridLayout() - hbox = QHBoxLayout() - hbox.setContentsMargins(0,0,0,0) - self.setLayout(hbox) - - - # webviewbox = QVBoxLayout() - vsplitter = QSplitter(QtCore.Qt.Vertical) - - self.webkitview = WebkitView(core.server.port) - vsplitter.addWidget(self.webkitview) - - self.webkitinspector = WebkitInspector(self.webkitview) - vsplitter.addWidget(self.webkitinspector) - - hsplitter = QSplitter(QtCore.Qt.Horizontal) - hsplitter.addWidget(vsplitter) - - self.editor = Editor(core) - hsplitter.addWidget(self.editor) - - hbox.addWidget(hsplitter) - - - # def onChanged(self, text): - # print("ViewTba Layout Changed") - # self.lbl.setText(text) - # self.lbl.adjustSize()