fix_camera_capture
This commit is contained in:
parent
fb6a407b78
commit
1351732653
6 changed files with 68 additions and 15 deletions
|
@ -69,7 +69,8 @@ public:
|
|||
virtual ~BrowserPopupController() {}
|
||||
virtual bool isExecute() { return true; };
|
||||
virtual QString getPath() { return QString(); };
|
||||
virtual void openPopup(QStringList, bool, QString){};
|
||||
virtual void openPopup(QStringList, bool, QString,
|
||||
const QWidget * = NULL){};
|
||||
};
|
||||
|
||||
static BrowserPopupController *m_browserPopupController;
|
||||
|
|
|
@ -2072,7 +2072,8 @@ BrowserPopupController::BrowserPopupController() : m_browserPopup() {
|
|||
|
||||
void BrowserPopupController::openPopup(QStringList filters,
|
||||
bool isDirectoryOnly,
|
||||
QString lastSelectedPath) {
|
||||
QString lastSelectedPath,
|
||||
const QWidget *parentWidget) {
|
||||
if (!m_browserPopup) m_browserPopup = new BrowserPopup();
|
||||
m_browserPopup->setWindowTitle(QString(""));
|
||||
|
||||
|
@ -2084,6 +2085,19 @@ void BrowserPopupController::openPopup(QStringList filters,
|
|||
m_browserPopup->initFolder(TFilePath(lastSelectedPath.toStdWString()));
|
||||
m_browserPopup->setFileMode(isDirectoryOnly);
|
||||
|
||||
if (parentWidget) {
|
||||
QWidget *pwidget = NULL;
|
||||
foreach (pwidget, QApplication::topLevelWidgets()) {
|
||||
if (pwidget->isWindow() && pwidget->isVisible() &&
|
||||
pwidget->isAncestorOf(parentWidget)) {
|
||||
Qt::WindowFlags flags = m_browserPopup->windowFlags();
|
||||
m_browserPopup->setParent(pwidget);
|
||||
m_browserPopup->setWindowFlags(flags);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (isDirectoryOnly)
|
||||
m_browserPopup->setFilename(TFilePath(lastSelectedPath.toStdWString()));
|
||||
|
||||
|
|
|
@ -433,8 +433,11 @@ public:
|
|||
BrowserPopupController();
|
||||
|
||||
bool isExecute() override { return m_isExecute; }
|
||||
// if parentWidget is non-zero, then check if the any modal dialog is ancestor
|
||||
// of it.
|
||||
void openPopup(QStringList filters, bool isDirectoryOnly,
|
||||
QString lastSelectedPath) override;
|
||||
QString lastSelectedPath,
|
||||
const QWidget *parentWidget = NULL) override;
|
||||
QString getPath() override;
|
||||
};
|
||||
|
||||
|
|
|
@ -81,6 +81,7 @@ TEnv::StringVar CamCapCameraResolution("CamCapCameraResolution", "");
|
|||
// Whether to open save-in popup on launch
|
||||
TEnv::IntVar CamCapOpenSaveInPopupOnLaunch("CamCapOpenSaveInPopupOnLaunch", 0);
|
||||
// SaveInFolderPopup settings
|
||||
TEnv::StringVar CamCapSaveInParentFolder("CamCapSaveInParentFolder", "");
|
||||
TEnv::IntVar CamCapSaveInPopupSubFolder("CamCapSaveInPopupSubFolder", 0);
|
||||
TEnv::StringVar CamCapSaveInPopupProject("CamCapSaveInPopupProject", "");
|
||||
TEnv::StringVar CamCapSaveInPopupEpisode("CamCapSaveInPopupEpisode", "1");
|
||||
|
@ -584,8 +585,14 @@ PencilTestSaveInFolderPopup::PencilTestSaveInFolderPopup(QWidget* parent)
|
|||
: Dialog(parent, true, false, "PencilTestSaveInFolder") {
|
||||
setWindowTitle("Create the Destination Subfolder to Save");
|
||||
|
||||
m_parentFolderField = new FileField(
|
||||
this, QString("+%1").arg(QString::fromStdString(TProject::Extras)));
|
||||
QString parentFolder = QString::fromStdString(CamCapSaveInParentFolder);
|
||||
if (parentFolder.isEmpty())
|
||||
parentFolder = QString("+%1").arg(QString::fromStdString(TProject::Extras));
|
||||
m_parentFolderField = new FileField(this, parentFolder);
|
||||
|
||||
QPushButton* setAsDefaultBtn = new QPushButton(tr("Set As Default"), this);
|
||||
setAsDefaultBtn->setToolTip(
|
||||
tr("Set the current \"Save In\" path as the default."));
|
||||
|
||||
m_subFolderCB = new QCheckBox(tr("Create Subfolder"), this);
|
||||
|
||||
|
@ -638,6 +645,7 @@ PencilTestSaveInFolderPopup::PencilTestSaveInFolderPopup(QWidget* parent)
|
|||
<< tr("Episode + Sequence + Scene")
|
||||
<< tr("Project + Episode + Sequence + Scene");
|
||||
m_subNameFormatCombo->addItems(items);
|
||||
m_subNameFormatCombo->setCurrentIndex(CamCapSaveInPopupAutoSubName - 1);
|
||||
|
||||
showPopupOnLaunchCB->setChecked(CamCapOpenSaveInPopupOnLaunch != 0);
|
||||
|
||||
|
@ -647,13 +655,18 @@ PencilTestSaveInFolderPopup::PencilTestSaveInFolderPopup(QWidget* parent)
|
|||
m_topLayout->setMargin(10);
|
||||
m_topLayout->setSpacing(10);
|
||||
{
|
||||
QHBoxLayout* saveInLay = new QHBoxLayout();
|
||||
QGridLayout* saveInLay = new QGridLayout();
|
||||
saveInLay->setMargin(0);
|
||||
saveInLay->setSpacing(3);
|
||||
saveInLay->setHorizontalSpacing(3);
|
||||
saveInLay->setVerticalSpacing(0);
|
||||
{
|
||||
saveInLay->addWidget(new QLabel(tr("Save In:"), this), 0);
|
||||
saveInLay->addWidget(m_parentFolderField, 1);
|
||||
saveInLay->addWidget(new QLabel(tr("Save In:"), this), 0, 0,
|
||||
Qt::AlignRight | Qt::AlignVCenter);
|
||||
saveInLay->addWidget(m_parentFolderField, 0, 1);
|
||||
saveInLay->addWidget(setAsDefaultBtn, 1, 1);
|
||||
}
|
||||
saveInLay->setColumnStretch(0, 0);
|
||||
saveInLay->setColumnStretch(1, 1);
|
||||
m_topLayout->addLayout(saveInLay);
|
||||
|
||||
m_topLayout->addWidget(m_subFolderCB, 0, Qt::AlignLeft);
|
||||
|
@ -725,9 +738,13 @@ PencilTestSaveInFolderPopup::PencilTestSaveInFolderPopup(QWidget* parent)
|
|||
SLOT(updateSubFolderName()));
|
||||
ret = ret && connect(m_autoSubNameCB, SIGNAL(clicked(bool)), this,
|
||||
SLOT(onAutoSubNameCBClicked(bool)));
|
||||
ret = ret && connect(m_subNameFormatCombo, SIGNAL(currentIndexChanged(int)),
|
||||
this, SLOT(updateSubFolderName()));
|
||||
|
||||
ret = ret && connect(showPopupOnLaunchCB, SIGNAL(clicked(bool)), this,
|
||||
SLOT(onShowPopupOnLaunchCBClicked(bool)));
|
||||
ret = ret && connect(setAsDefaultBtn, SIGNAL(pressed()), this,
|
||||
SLOT(onSetAsDefaultBtnPressed()));
|
||||
|
||||
ret = ret && connect(okBtn, SIGNAL(clicked(bool)), this, SLOT(onOkPressed()));
|
||||
ret = ret && connect(cancelBtn, SIGNAL(clicked(bool)), this, SLOT(reject()));
|
||||
|
@ -745,6 +762,12 @@ QString PencilTestSaveInFolderPopup::getPath() {
|
|||
return m_parentFolderField->getPath() + "\\" + m_subFolderNameField->text();
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
QString PencilTestSaveInFolderPopup::getParentPath() {
|
||||
return m_parentFolderField->getPath();
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
namespace {
|
||||
QString formatString(QString inStr, int charNum) {
|
||||
|
@ -813,6 +836,12 @@ void PencilTestSaveInFolderPopup::onShowPopupOnLaunchCBClicked(bool on) {
|
|||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
void PencilTestSaveInFolderPopup::onSetAsDefaultBtnPressed() {
|
||||
CamCapSaveInParentFolder = m_parentFolderField->getPath().toStdString();
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
void PencilTestSaveInFolderPopup::onOkPressed() {
|
||||
if (!m_subFolderCB->isChecked()) {
|
||||
accept();
|
||||
|
@ -850,7 +879,9 @@ void PencilTestSaveInFolderPopup::onOkPressed() {
|
|||
CamCapSaveInPopupEpisode = m_episodeField->text().toStdString();
|
||||
CamCapSaveInPopupSequence = m_sequenceField->text().toStdString();
|
||||
CamCapSaveInPopupScene = m_sceneField->text().toStdString();
|
||||
CamCapSaveInPopupAutoSubName = (m_autoSubNameCB->isChecked()) ? 1 : 0;
|
||||
CamCapSaveInPopupAutoSubName = (!m_autoSubNameCB->isChecked())
|
||||
? 0
|
||||
: m_subNameFormatCombo->currentIndex() + 1;
|
||||
|
||||
// create folder
|
||||
try {
|
||||
|
@ -886,6 +917,8 @@ PencilTestPopup::PencilTestPopup()
|
|||
TFilePath(L"penciltest" + dateTime + L".jpg");
|
||||
m_cacheImagePath = cacheImageFp.getQString();
|
||||
|
||||
m_saveInFolderPopup = new PencilTestSaveInFolderPopup(this);
|
||||
|
||||
m_cameraViewfinder = new MyViewFinder(this);
|
||||
// CameraViewfinderContainer* cvfContainer = new
|
||||
// CameraViewfinderContainer(m_cameraViewfinder, this);
|
||||
|
@ -904,8 +937,9 @@ PencilTestPopup::PencilTestPopup()
|
|||
m_frameNumberEdit = new FrameNumberLineEdit(this, startFrame);
|
||||
m_fileTypeCombo = new QComboBox(this);
|
||||
m_fileFormatOptionButton = new QPushButton(tr("Options"), this);
|
||||
m_saveInFileFld = new FileField(
|
||||
0, QString("+%1").arg(QString::fromStdString(TProject::Extras)));
|
||||
|
||||
m_saveInFileFld = new FileField(this, m_saveInFolderPopup->getParentPath());
|
||||
|
||||
QToolButton* nextLevelButton = new QToolButton(this);
|
||||
m_saveOnCaptureCB =
|
||||
new QCheckBox(tr("Save images as they are captured"), this);
|
||||
|
@ -943,8 +977,6 @@ PencilTestPopup::PencilTestPopup()
|
|||
|
||||
QPushButton* subfolderButton = new QPushButton(tr("Subfolder"), this);
|
||||
|
||||
m_saveInFolderPopup = new PencilTestSaveInFolderPopup(this);
|
||||
|
||||
//----
|
||||
|
||||
m_resolutionCombo->setMaximumWidth(fontMetrics().width("0000 x 0000") + 25);
|
||||
|
|
|
@ -138,11 +138,13 @@ class PencilTestSaveInFolderPopup : public DVGui::Dialog {
|
|||
public:
|
||||
PencilTestSaveInFolderPopup(QWidget* parent = 0);
|
||||
QString getPath();
|
||||
QString getParentPath();
|
||||
|
||||
protected slots:
|
||||
void updateSubFolderName();
|
||||
void onAutoSubNameCBClicked(bool);
|
||||
void onShowPopupOnLaunchCBClicked(bool);
|
||||
void onSetAsDefaultBtnPressed();
|
||||
void onOkPressed();
|
||||
};
|
||||
|
||||
|
|
|
@ -94,7 +94,8 @@ void FileField::browseDirectory() {
|
|||
if (!m_browserPopupController) return;
|
||||
m_browserPopupController->openPopup(
|
||||
m_filters, (m_fileMode == QFileDialog::DirectoryOnly),
|
||||
(m_lastSelectedPath == m_descriptionText) ? "" : m_lastSelectedPath);
|
||||
(m_lastSelectedPath == m_descriptionText) ? "" : m_lastSelectedPath,
|
||||
this);
|
||||
if (m_browserPopupController->isExecute())
|
||||
directory = m_browserPopupController->getPath();
|
||||
|
||||
|
|
Loading…
Reference in a new issue