Converted project to C++.

This commit is contained in:
2018-08-06 21:37:16 +03:00
parent 144c3e3e25
commit d85c366212
104 changed files with 6224 additions and 239448 deletions

View File

@ -0,0 +1,14 @@
#include "newprojectdialog.h"
#include "ui_newprojectdialog.h"
NewProjectDialog::NewProjectDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::NewProjectDialog)
{
ui->setupUi(this);
}
NewProjectDialog::~NewProjectDialog()
{
delete ui;
}

View File

@ -0,0 +1,22 @@
#ifndef NEWPROJECTDIALOG_H
#define NEWPROJECTDIALOG_H
#include <QDialog>
namespace Ui {
class NewProjectDialog;
}
class NewProjectDialog : public QDialog
{
Q_OBJECT
public:
explicit NewProjectDialog(QWidget *parent = 0);
~NewProjectDialog();
private:
Ui::NewProjectDialog *ui;
};
#endif // NEWPROJECTDIALOG_H

View File

@ -1,26 +0,0 @@
from PyQt5.QtWidgets import QApplication
from PyQt5.QtGui import QFontDatabase
from ui.main_window import MainWindow
from business.project_manager import ProjectManager
from storage.appdata_storage import AppDataStorage
class EmberApplication(QApplication):
def __init__(self, argv):
super().__init__(argv)
def start(self):
QFontDatabase.addApplicationFont(":/FontAwesome-Solid.otf")
QFontDatabase.addApplicationFont(":/FontAwesome-Regular.otf")
# setup resources
appDataStorage = AppDataStorage()
projectManager = ProjectManager(appDataStorage)
#projectManager.debug_populateRecentProjects()
# show main window
mainwindow = MainWindow(projectManager)
mainwindow.show()
exit(self.exec_())

View File

@ -1,54 +0,0 @@
import traceback
from PyQt5.QtWidgets import QMainWindow, QVBoxLayout, QWidget, QApplication, QMessageBox
from PyQt5.QtCore import QTimer
from model import Project
from business import ProjectManager
from ui.project.project_panel import ProjectPanel
from ui.project.new_project_dialog import NewProjectDialog
from ui.welcome.welcome_dialog import WelcomeDialog
class MainWindow(QMainWindow):
def __init__(self, projectManager : ProjectManager):
super().__init__()
self.__projectManager = projectManager
self.setupUi()
QTimer.singleShot(0, self.showWelcomeDialog)
def setupUi(self):
self.projectPanel = ProjectPanel()
layout = QVBoxLayout()
layout.addWidget(self.projectPanel)
cwidget = QWidget()
cwidget.setLayout(layout)
self.setCentralWidget(cwidget)
def showWelcomeDialog(self):
# Show welcome dialog
welcome = WelcomeDialog(self.__projectManager, self)
if welcome.exec() > 0:
if welcome.resultAction == WelcomeDialog.NEW_PROJECT:
self.newProject()
elif welcome.resultAction == WelcomeDialog.OPEN_PROJECT:
self.openProject(welcome.projectToOpen)
def newProject(self):
dialog = NewProjectDialog(self.__projectManager, self)
if dialog.exec() > 0:
self.loadProject(dialog.project)
def openProject(self, projectPath : str = None):
try:
project = self.__projectManager.openProject(projectPath)
except Exception as ex:
print("Failed to open project: ", traceback.format_exc())
QMessageBox.critical(self,
self.tr('An error occurred'),
self.tr('The project could not be open.'))
def loadProject(self, project : Project):
pass

11
ui/mainwindow.cpp Normal file
View File

@ -0,0 +1,11 @@
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
}
MainWindow::~MainWindow()
{
}

18
ui/mainwindow.h Normal file
View File

@ -0,0 +1,18 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
};
#endif // MAINWINDOW_H

View File

@ -1,61 +0,0 @@
import traceback
from PyQt5.QtWidgets import QDialog, QWidget, QDialogButtonBox, QFileDialog, QPushButton, QMessageBox
from model import Project
from business import ProjectManager
from properties.config import PROJECT_EXTENSION
from ui.project.new_project_dialog_ui import Ui_NewProjectDialog
class NewProjectDialog(QDialog):
def __init__(self, projectManager : ProjectManager, parent : QWidget = None):
super().__init__(parent)
self.__projectManager = projectManager
self.project : Project = None
self.setupUi()
self.setupActions()
self.validate()
def setupUi(self):
self.ui = Ui_NewProjectDialog()
self.ui.setupUi(self)
self.__buttonOk : QPushButton = self.ui.buttonBox.button(QDialogButtonBox.Ok)
def setupActions(self):
self.ui.buttonBrowse.pressed.connect(self.browsePressed)
self.ui.textProjectPath.textChanged.connect(self.projectPathChanged)
self.ui.buttonBox.accepted.connect(self.okPressed)
def validate(self):
valid = True
if not self.ui.textProjectPath.text():
valid = False
self.__buttonOk.setEnabled(valid)
def browsePressed(self):
path = QFileDialog.getSaveFileName(
self,
self.tr('New project'),
'',
self.tr(f'Project files (*.{PROJECT_EXTENSION});;All files (*.*)'))
if path[0]:
self.ui.textProjectPath.setText(path[0])
def projectPathChanged(self):
self.validate()
def okPressed(self):
try:
path = self.ui.textProjectPath.text()
self.project = self.__projectManager.newProject(path)
self.accept()
except Exception as ex:
print("Failed to create project: ", traceback.format_exc())
QMessageBox.critical(self,
self.tr('An error occurred'),
self.tr('The project could not be created in the given location.'))

View File

@ -1,124 +0,0 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'ui/project/new_project_dialog.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_NewProjectDialog(object):
def setupUi(self, NewProjectDialog):
NewProjectDialog.setObjectName("NewProjectDialog")
NewProjectDialog.resize(486, 299)
self.verticalLayout = QtWidgets.QVBoxLayout(NewProjectDialog)
self.verticalLayout.setObjectName("verticalLayout")
self._panelProjectPath = QtWidgets.QWidget(NewProjectDialog)
self._panelProjectPath.setObjectName("_panelProjectPath")
self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self._panelProjectPath)
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.labelProjectPath = QtWidgets.QLabel(self._panelProjectPath)
self.labelProjectPath.setObjectName("labelProjectPath")
self.horizontalLayout_3.addWidget(self.labelProjectPath)
self.textProjectPath = QtWidgets.QLineEdit(self._panelProjectPath)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.textProjectPath.sizePolicy().hasHeightForWidth())
self.textProjectPath.setSizePolicy(sizePolicy)
self.textProjectPath.setObjectName("textProjectPath")
self.horizontalLayout_3.addWidget(self.textProjectPath)
self.buttonBrowse = QtWidgets.QPushButton(self._panelProjectPath)
self.buttonBrowse.setObjectName("buttonBrowse")
self.horizontalLayout_3.addWidget(self.buttonBrowse)
self.verticalLayout.addWidget(self._panelProjectPath)
self.groupVideoSettings = QtWidgets.QGroupBox(NewProjectDialog)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(2)
sizePolicy.setHeightForWidth(self.groupVideoSettings.sizePolicy().hasHeightForWidth())
self.groupVideoSettings.setSizePolicy(sizePolicy)
self.groupVideoSettings.setObjectName("groupVideoSettings")
self.formlayout = QtWidgets.QFormLayout(self.groupVideoSettings)
self.formlayout.setContentsMargins(20, -1, 20, -1)
self.formlayout.setObjectName("formlayout")
self.labelColorDepth = QtWidgets.QLabel(self.groupVideoSettings)
self.labelColorDepth.setMinimumSize(QtCore.QSize(110, 0))
self.labelColorDepth.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.labelColorDepth.setObjectName("labelColorDepth")
self.formlayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.labelColorDepth)
self.comboColorDepth = QtWidgets.QComboBox(self.groupVideoSettings)
self.comboColorDepth.setMinimumSize(QtCore.QSize(150, 0))
self.comboColorDepth.setObjectName("comboColorDepth")
self.comboColorDepth.addItem("")
self.comboColorDepth.addItem("")
self.comboColorDepth.addItem("")
self.formlayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.comboColorDepth)
self.labelColorSpace = QtWidgets.QLabel(self.groupVideoSettings)
self.labelColorSpace.setMinimumSize(QtCore.QSize(110, 0))
self.labelColorSpace.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.labelColorSpace.setObjectName("labelColorSpace")
self.formlayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.labelColorSpace)
self.comboColorSpace = QtWidgets.QComboBox(self.groupVideoSettings)
self.comboColorSpace.setObjectName("comboColorSpace")
self.comboColorSpace.addItem("")
self.formlayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.comboColorSpace)
self.verticalLayout.addWidget(self.groupVideoSettings)
self.groupAudioSettings = QtWidgets.QGroupBox(NewProjectDialog)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(1)
sizePolicy.setHeightForWidth(self.groupAudioSettings.sizePolicy().hasHeightForWidth())
self.groupAudioSettings.setSizePolicy(sizePolicy)
self.groupAudioSettings.setObjectName("groupAudioSettings")
self.formLayout_2 = QtWidgets.QFormLayout(self.groupAudioSettings)
self.formLayout_2.setContentsMargins(20, -1, 20, -1)
self.formLayout_2.setObjectName("formLayout_2")
self.labelSampleRate = QtWidgets.QLabel(self.groupAudioSettings)
self.labelSampleRate.setMinimumSize(QtCore.QSize(110, 0))
self.labelSampleRate.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.labelSampleRate.setObjectName("labelSampleRate")
self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.labelSampleRate)
self.comboSampleRate = QtWidgets.QComboBox(self.groupAudioSettings)
self.comboSampleRate.setObjectName("comboSampleRate")
self.comboSampleRate.addItem("")
self.comboSampleRate.addItem("")
self.comboSampleRate.addItem("")
self.comboSampleRate.addItem("")
self.comboSampleRate.addItem("")
self.comboSampleRate.addItem("")
self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.comboSampleRate)
self.verticalLayout.addWidget(self.groupAudioSettings)
self.buttonBox = QtWidgets.QDialogButtonBox(NewProjectDialog)
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
self.buttonBox.setObjectName("buttonBox")
self.verticalLayout.addWidget(self.buttonBox)
self.retranslateUi(NewProjectDialog)
self.comboSampleRate.setCurrentIndex(2)
self.buttonBox.rejected.connect(NewProjectDialog.reject)
QtCore.QMetaObject.connectSlotsByName(NewProjectDialog)
def retranslateUi(self, NewProjectDialog):
_translate = QtCore.QCoreApplication.translate
NewProjectDialog.setWindowTitle(_translate("NewProjectDialog", "New project"))
self.labelProjectPath.setText(_translate("NewProjectDialog", "Project path:"))
self.buttonBrowse.setText(_translate("NewProjectDialog", "&Browse..."))
self.groupVideoSettings.setTitle(_translate("NewProjectDialog", "Video settings"))
self.labelColorDepth.setText(_translate("NewProjectDialog", "Color depth:"))
self.comboColorDepth.setItemText(0, _translate("NewProjectDialog", "8 bits/channel"))
self.comboColorDepth.setItemText(1, _translate("NewProjectDialog", "16 bits/channel"))
self.comboColorDepth.setItemText(2, _translate("NewProjectDialog", "32 bits/channel (float)"))
self.labelColorSpace.setText(_translate("NewProjectDialog", "Color space:"))
self.comboColorSpace.setItemText(0, _translate("NewProjectDialog", "sRGB"))
self.groupAudioSettings.setTitle(_translate("NewProjectDialog", "Audio settings"))
self.labelSampleRate.setText(_translate("NewProjectDialog", "Sample rate:"))
self.comboSampleRate.setItemText(0, _translate("NewProjectDialog", "32 kHz"))
self.comboSampleRate.setItemText(1, _translate("NewProjectDialog", "44.1 kHz"))
self.comboSampleRate.setItemText(2, _translate("NewProjectDialog", "48 kHz"))
self.comboSampleRate.setItemText(3, _translate("NewProjectDialog", "88.2 kHz"))
self.comboSampleRate.setItemText(4, _translate("NewProjectDialog", "96 kHz"))
self.comboSampleRate.setItemText(5, _translate("NewProjectDialog", "192 kHz"))

View File

@ -1,12 +0,0 @@
from PyQt5 import QtCore, QtWidgets, uic
import os
from ui.project.project_panel_ui import Ui_Form
class ProjectPanel(QtWidgets.QWidget):
def __init__(self):
super(ProjectPanel, self).__init__()
self.ui = Ui_Form()
self.ui.setupUi(self)

View File

@ -1,58 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>90</x>
<y>40</y>
<width>84</width>
<height>34</height>
</rect>
</property>
<property name="text">
<string>PushButton</string>
</property>
</widget>
<widget class="QCheckBox" name="checkBox">
<property name="geometry">
<rect>
<x>80</x>
<y>150</y>
<width>86</width>
<height>22</height>
</rect>
</property>
<property name="text">
<string>CheckBox</string>
</property>
</widget>
<widget class="QCheckBox" name="checkBox_2">
<property name="geometry">
<rect>
<x>80</x>
<y>180</y>
<width>86</width>
<height>22</height>
</rect>
</property>
<property name="text">
<string>CheckBox</string>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -1,34 +0,0 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'ui/project/project_panel.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(400, 300)
self.pushButton = QtWidgets.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(90, 40, 84, 34))
self.pushButton.setObjectName("pushButton")
self.checkBox = QtWidgets.QCheckBox(Form)
self.checkBox.setGeometry(QtCore.QRect(80, 150, 86, 22))
self.checkBox.setObjectName("checkBox")
self.checkBox_2 = QtWidgets.QCheckBox(Form)
self.checkBox_2.setGeometry(QtCore.QRect(80, 180, 86, 22))
self.checkBox_2.setObjectName("checkBox_2")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.pushButton.setText(_translate("Form", "PushButton"))
self.checkBox.setText(_translate("Form", "CheckBox"))
self.checkBox_2.setText(_translate("Form", "CheckBox"))

View File

View File

@ -1,175 +0,0 @@
import traceback
from PyQt5.QtWidgets import QDialog, QCommandLinkButton, QListWidgetItem, QFileDialog, QWidget, QHBoxLayout, QLabel, QToolButton, QLayout
from PyQt5.QtGui import QPixmap, QResizeEvent, QFont
from PyQt5.QtCore import Qt, pyqtSignal
from ui.welcome.welcome_dialog_ui import Ui_WelcomeDialog
from model import RecentProject
from business import ProjectManager
from properties.config import PROJECT_EXTENSION
class RecentProjectListWidget(QWidget):
deleted = pyqtSignal()
pinned = pyqtSignal(bool)
def __init__(self, recentProject : RecentProject):
super().__init__()
self.project = recentProject
self.__selected = False
self.setupUi()
self.setupActions()
self.__setProject(recentProject)
self.setSelected(False)
def setupUi(self):
layout = QHBoxLayout()
# label
self.__text = QLabel()
layout.addWidget(self.__text)
# space
layout.addStretch()
# pin button
self.__pin_button = QToolButton()
self.__pin_button.setFont(QFont("Font Awesome 5 Free"))
self.__pin_button.setText("\uf08d")
self.__pin_button.setCheckable(True)
layout.addWidget(self.__pin_button)
# delete button
self.__del_button = QToolButton()
self.__del_button.setFont(QFont("Font Awesome 5 Free"))
self.__del_button.setText("\uf2ed")
layout.addWidget(self.__del_button)
# pin indicator
self.__pin_indicator = QLabel()
self.__pin_indicator.setFont(QFont("Font Awesome 5 Free"))
self.__pin_indicator.setText("\uf08d")
layout.addWidget(self.__pin_indicator)
# done
layout.setSizeConstraint(QLayout.SetMinimumSize)
self.setLayout(layout)
def setupActions(self):
self.__pin_button.toggled.connect(self.__pinnedToggled)
self.__del_button.pressed.connect(self.deleted)
def setSelected(self, selected : bool = True):
self.__selected = selected
self.__pin_button.setVisible(selected)
self.__del_button.setVisible(selected)
self.__pin_indicator.setVisible(not self.__selected and self.__pin_button.isChecked())
def setPinned(self, isPinned : bool = True):
self.__pin_button.setChecked(isPinned)
def __setProject(self, project : RecentProject):
self.__text = project.name
self.setPinned(project.pinned)
def __pinnedToggled(self, isPinned : bool):
self.__pin_indicator.setVisible(not self.__selected and isPinned)
if (isPinned != self.project.pinned):
self.pinned.emit(isPinned)
class WelcomeDialog(QDialog):
NEW_PROJECT = 0
OPEN_PROJECT = 1
def __init__(self, projectManager : ProjectManager, parent : QWidget = None):
super().__init__(parent)
self.__projectManager = projectManager
self.resultAction : int = None
self.projectToOpen : str = None
self.setResult(QDialog.Rejected)
self.setupUi()
self.setupActions()
self.populateRecentProjects()
def setupUi(self) -> None:
self.ui = Ui_WelcomeDialog()
self.ui.setupUi(self)
self.image = QPixmap(self.ui.picture.pixmap())
def setupActions(self) -> None:
self.ui.buttonNewProject.pressed.connect(self.newProjectPressed)
self.ui.buttonOpenProject.pressed.connect(self.openProjectPressed)
self.ui.listRecentProjects.currentItemChanged.connect(self.listRecentProjectsCurrentChanged)
self.ui.listRecentProjects.itemActivated.connect(self.listRecentProjectsItemActivated)
def resizeEvent(self, event : QResizeEvent) -> None:
super().resizeEvent(event)
picSize = self.ui.picture.size()
pic = self.image.scaled(picSize, Qt.KeepAspectRatioByExpanding, Qt.SmoothTransformation)
self.ui.picture.setPixmap(pic)
def populateRecentProjects(self) -> None:
projects = list(self.__projectManager.getRecentProjects())
projects = sorted(projects, key=lambda x: (x.pinned, x.dateAccessed), reverse=True)
for project in projects:
widget = RecentProjectListWidget(project)
widget.pinned.connect(self.__projectPinned)
widget.deleted.connect(self.__projectDeleted)
item = QListWidgetItem(project.name)
item.setData(Qt.UserRole, project)
item.setSizeHint(widget.sizeHint())
self.ui.listRecentProjects.addItem(item)
self.ui.listRecentProjects.setItemWidget(item, widget)
def newProjectPressed(self) -> None:
self.resultAction = WelcomeDialog.NEW_PROJECT
self.accept()
def openProjectPressed(self) -> None:
proj = QFileDialog.getOpenFileName(
self,
self.tr('Open project'),
'',
self.tr(f'Project files (*.{PROJECT_EXTENSION});;All files (*.*)'))
if proj[0]:
self.projectToOpen = proj[0]
self.resultAction = WelcomeDialog.OPEN_PROJECT
self.accept()
def listRecentProjectsCurrentChanged(self, current : QListWidgetItem, previous : QListWidgetItem) -> None:
if not current is None:
RecentProjectListWidget = self.ui.listRecentProjects.itemWidget(current)
RecentProjectListWidget.setSelected(True)
if not previous is None:
RecentProjectListWidget = self.ui.listRecentProjects.itemWidget(previous)
if not RecentProjectListWidget is None:
RecentProjectListWidget.setSelected(False)
def listRecentProjectsItemActivated(self, item : QListWidgetItem) -> None:
project : RecentProject = item.data(Qt.UserRole)
self.resultAction = WelcomeDialog.OPEN_PROJECT
self.projectToOpen = project.path
self.accept()
def __projectPinned(self, isPinned : bool) -> None:
project = self.ui.listRecentProjects.currentItem().data(Qt.UserRole)
self.__projectManager.pinRecentProject(project, isPinned)
def __projectDeleted(self) -> None:
project = self.ui.listRecentProjects.currentItem().data(Qt.UserRole)
try:
self.__projectManager.deleteRecentProject(project)
self.ui.listRecentProjects.takeItem(self.ui.listRecentProjects.currentRow())
except:
print("Error while deleting! ")
traceback.print_exc()

View File

@ -1,90 +0,0 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'ui/welcome/welcome_dialog.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_WelcomeDialog(object):
def setupUi(self, WelcomeDialog):
WelcomeDialog.setObjectName("WelcomeDialog")
WelcomeDialog.setWindowModality(QtCore.Qt.WindowModal)
WelcomeDialog.resize(667, 601)
self.verticalLayout = QtWidgets.QVBoxLayout(WelcomeDialog)
self.verticalLayout.setObjectName("verticalLayout")
self.picture = QtWidgets.QLabel(WelcomeDialog)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.picture.sizePolicy().hasHeightForWidth())
self.picture.setSizePolicy(sizePolicy)
self.picture.setMinimumSize(QtCore.QSize(0, 120))
self.picture.setMaximumSize(QtCore.QSize(16777215, 120))
self.picture.setText("")
self.picture.setPixmap(QtGui.QPixmap(":/WelcomeBanner.jpg"))
self.picture.setScaledContents(False)
self.picture.setAlignment(QtCore.Qt.AlignCenter)
self.picture.setObjectName("picture")
self.verticalLayout.addWidget(self.picture)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.panelRecentProjects = QtWidgets.QWidget(WelcomeDialog)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(2)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.panelRecentProjects.sizePolicy().hasHeightForWidth())
self.panelRecentProjects.setSizePolicy(sizePolicy)
self.panelRecentProjects.setObjectName("panelRecentProjects")
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.panelRecentProjects)
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.labelRecentProjects = QtWidgets.QLabel(self.panelRecentProjects)
font = QtGui.QFont()
font.setPointSize(13)
self.labelRecentProjects.setFont(font)
self.labelRecentProjects.setObjectName("labelRecentProjects")
self.verticalLayout_3.addWidget(self.labelRecentProjects)
self.listRecentProjects = QtWidgets.QListWidget(self.panelRecentProjects)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(1)
sizePolicy.setHeightForWidth(self.listRecentProjects.sizePolicy().hasHeightForWidth())
self.listRecentProjects.setSizePolicy(sizePolicy)
self.listRecentProjects.setObjectName("listRecentProjects")
self.verticalLayout_3.addWidget(self.listRecentProjects)
self.horizontalLayout.addWidget(self.panelRecentProjects)
self.panelButtons = QtWidgets.QWidget(WelcomeDialog)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(1)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.panelButtons.sizePolicy().hasHeightForWidth())
self.panelButtons.setSizePolicy(sizePolicy)
self.panelButtons.setObjectName("panelButtons")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.panelButtons)
self.verticalLayout_2.setObjectName("verticalLayout_2")
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.MinimumExpanding)
self.verticalLayout_2.addItem(spacerItem)
self.buttonNewProject = QtWidgets.QCommandLinkButton(self.panelButtons)
self.buttonNewProject.setObjectName("buttonNewProject")
self.verticalLayout_2.addWidget(self.buttonNewProject)
self.buttonOpenProject = QtWidgets.QCommandLinkButton(self.panelButtons)
self.buttonOpenProject.setObjectName("buttonOpenProject")
self.verticalLayout_2.addWidget(self.buttonOpenProject)
self.horizontalLayout.addWidget(self.panelButtons)
self.verticalLayout.addLayout(self.horizontalLayout)
self.retranslateUi(WelcomeDialog)
QtCore.QMetaObject.connectSlotsByName(WelcomeDialog)
def retranslateUi(self, WelcomeDialog):
_translate = QtCore.QCoreApplication.translate
WelcomeDialog.setWindowTitle(_translate("WelcomeDialog", "Welcome"))
self.labelRecentProjects.setText(_translate("WelcomeDialog", "Recent projects"))
self.buttonNewProject.setText(_translate("WelcomeDialog", "&New Project"))
self.buttonNewProject.setDescription(_translate("WelcomeDialog", "Create a new project."))
self.buttonOpenProject.setText(_translate("WelcomeDialog", "&Open Project"))
self.buttonOpenProject.setDescription(_translate("WelcomeDialog", "Open an existing project."))
import resources_rc

View File

@ -0,0 +1,14 @@
#include "welcomedialog.h"
#include "ui_welcomedialog.h"
WelcomeDialog::WelcomeDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::WelcomeDialog)
{
ui->setupUi(this);
}
WelcomeDialog::~WelcomeDialog()
{
delete ui;
}

View File

@ -0,0 +1,22 @@
#ifndef WELCOMEDIALOG_H
#define WELCOMEDIALOG_H
#include <QDialog>
namespace Ui {
class WelcomeDialog;
}
class WelcomeDialog : public QDialog
{
Q_OBJECT
public:
explicit WelcomeDialog(QWidget *parent = 0);
~WelcomeDialog();
private:
Ui::WelcomeDialog *ui;
};
#endif // WELCOMEDIALOG_H

View File

@ -41,7 +41,7 @@
<string/>
</property>
<property name="pixmap">
<pixmap resource="../../resources.qrc">:/WelcomeBanner.jpg</pixmap>
<pixmap resource="../../resources/appresources.qrc">:/WelcomeBanner.jpg</pixmap>
</property>
<property name="scaledContents">
<bool>false</bool>
@ -140,7 +140,7 @@
</layout>
</widget>
<resources>
<include location="../../resources.qrc"/>
<include location="../../resources/appresources.qrc"/>
</resources>
<connections/>
</ui>