diff --git a/src/app/tape/tmainwindow.cpp b/src/app/tape/tmainwindow.cpp index b9880d6f7..9d67b8f03 100644 --- a/src/app/tape/tmainwindow.cpp +++ b/src/app/tape/tmainwindow.cpp @@ -2031,7 +2031,7 @@ void TMainWindow::InitWindow() connect(ui->plainTextEditDescription, &QPlainTextEdit::textChanged, this, &TMainWindow::SaveMDescription); connect(ui->lineEditFullName, &QLineEdit::textEdited, this, &TMainWindow::SaveMFullName); - connect(ui->pushButtonShowInExplorer, &QPushButton::clicked, this, &TMainWindow::ShowInGraphicalShell); + connect(ui->pushButtonShowInExplorer, &QPushButton::clicked, [this](){ShowInGraphicalShell(curFile);}); InitUnits(); @@ -2106,12 +2106,14 @@ void TMainWindow::SetCurrentFile(const QString &fileName) mType == MeasurementsType::Standard ? shownName += QLatin1Literal(".vst") : shownName += QLatin1Literal(".vit"); ui->lineEditPathToFile->setText(tr("")); ui->lineEditPathToFile->setToolTip(tr("File was not saved yet.")); + ui->lineEditPathToFile->setCursorPosition(0); ui->pushButtonShowInExplorer->setEnabled(false); } else { ui->lineEditPathToFile->setText(QDir::toNativeSeparators(curFile)); ui->lineEditPathToFile->setToolTip(QDir::toNativeSeparators(curFile)); + ui->lineEditPathToFile->setCursorPosition(0); ui->pushButtonShowInExplorer->setEnabled(true); auto settings = qApp->TapeSettings(); QStringList files = settings->GetRecentFileList(); @@ -3001,52 +3003,3 @@ void TMainWindow::InitGender(QComboBox *gender) gender->addItem(tr("male", "gender"), QVariant(static_cast(GenderType::Male))); gender->addItem(tr("female", "gender"), QVariant(static_cast(GenderType::Female))); } - -//--------------------------------------------------------------------------------------------------------------------- -void TMainWindow::ShowInGraphicalShell() -{ -#ifdef Q_OS_MAC - QStringList args; - args << "-e"; - args << "tell application \"Finder\""; - args << "-e"; - args << "activate"; - args << "-e"; - args << "select POSIX file \""+curFile+"\""; - args << "-e"; - args << "end tell"; - QProcess::startDetached("osascript", args); -#elif defined(Q_OS_WIN) - QProcess::startDetached(QString("explorer /select, \"%1\"").arg(QDir::toNativeSeparators(curFile))); -#else - const QString app = "xdg-open %d"; - QString cmd; - for (int i = 0; i < app.size(); ++i) - { - QChar c = app.at(i); - if (c == QLatin1Char('%') && i < app.size()-1) - { - c = app.at(++i); - QString s; - if (c == QLatin1Char('d')) - { - s = QLatin1Char('"') + QFileInfo(curFile).path() + QLatin1Char('"'); - } - else if (c == QLatin1Char('%')) - { - s = c; - } - else - { - s = QLatin1Char('%'); - s += c; - } - cmd += s; - continue; - } - cmd += c; - } - QProcess::startDetached(cmd); -#endif - -} diff --git a/src/app/tape/tmainwindow.h b/src/app/tape/tmainwindow.h index e349f391a..e65d0e2a0 100644 --- a/src/app/tape/tmainwindow.h +++ b/src/app/tape/tmainwindow.h @@ -116,7 +116,6 @@ private slots: void ShowMData(); void DeployFormula(); - void ShowInGraphicalShell(); void SaveMName(); void SaveMValue(); diff --git a/src/app/valentina/dialogs/dialogpatternproperties.cpp b/src/app/valentina/dialogs/dialogpatternproperties.cpp index c85d1f9bc..ed57b6819 100644 --- a/src/app/valentina/dialogs/dialogpatternproperties.cpp +++ b/src/app/valentina/dialogs/dialogpatternproperties.cpp @@ -40,15 +40,26 @@ #define MAX_SIZES 18 //--------------------------------------------------------------------------------------------------------------------- -DialogPatternProperties::DialogPatternProperties(VPattern *doc, VContainer *pattern, QWidget *parent) : - QDialog(parent), ui(new Ui::DialogPatternProperties), doc(doc), pattern(pattern), heightsChecked(MAX_HEIGHTS), - sizesChecked(MAX_SIZES), heights (QMap()), sizes(QMap()), - data(QMap()), descriptionChanged(false), gradationChanged(false), defaultChanged(false), - securityChanged(false), isInitialized(false), - deleteAction(nullptr), - changeImageAction(nullptr), - saveImageAction(nullptr), - showImageAction(nullptr) +DialogPatternProperties::DialogPatternProperties(const QString &filePath, VPattern *doc, VContainer *pattern, + QWidget *parent) + : QDialog(parent), + ui(new Ui::DialogPatternProperties), + doc(doc), + pattern(pattern), + heightsChecked(MAX_HEIGHTS), + sizesChecked(MAX_SIZES), + heights (QMap()), + sizes(QMap()), + data(QMap()), + descriptionChanged(false), + gradationChanged(false), + defaultChanged(false), + securityChanged(false), + deleteAction(nullptr), + changeImageAction(nullptr), + saveImageAction(nullptr), + showImageAction(nullptr), + m_filePath(filePath) { ui->setupUi(this); @@ -60,6 +71,25 @@ DialogPatternProperties::DialogPatternProperties(VPattern *doc, VContainer *pat qApp->ValentinaSettings()->GetOsSeparator() ? setLocale(QLocale::system()) : setLocale(QLocale(QLocale::C)); + if (m_filePath.isEmpty()) + { + ui->lineEditPathToFile->setText(tr("")); + ui->lineEditPathToFile->setToolTip(tr("File was not saved yet.")); + ui->pushButtonShowInExplorer->setEnabled(false); + } + else + { + ui->lineEditPathToFile->setText(QDir::toNativeSeparators(m_filePath)); + ui->lineEditPathToFile->setToolTip(QDir::toNativeSeparators(m_filePath)); + ui->pushButtonShowInExplorer->setEnabled(true); + } + ui->lineEditPathToFile->setCursorPosition(0); + + connect(ui->pushButtonShowInExplorer, &QPushButton::clicked, [this](){ShowInGraphicalShell(m_filePath);}); +#if defined(Q_OS_MAC) + ui->pushButtonShowInExplorer->setText(tr("Show in Finder")); +#endif //defined(Q_OS_MAC) + ui->lineEditAuthor->setText(doc->GetAuthor()); connect(ui->lineEditAuthor, &QLineEdit::editingFinished, this, &DialogPatternProperties::DescEdited); @@ -329,27 +359,6 @@ void DialogPatternProperties::DescEdited() descriptionChanged = true; } -//--------------------------------------------------------------------------------------------------------------------- -void DialogPatternProperties::showEvent(QShowEvent *event) -{ - QDialog::showEvent( event ); - if ( event->spontaneous() ) - { - return; - } - - if (isInitialized) - { - return; - } - // do your init stuff here - - setMaximumSize(size()); - setMinimumSize(size()); - - isInitialized = true;//first show windows are held -} - //--------------------------------------------------------------------------------------------------------------------- void DialogPatternProperties::ToggleComboBox() { diff --git a/src/app/valentina/dialogs/dialogpatternproperties.h b/src/app/valentina/dialogs/dialogpatternproperties.h index ce8f07291..9cac4d3fc 100644 --- a/src/app/valentina/dialogs/dialogpatternproperties.h +++ b/src/app/valentina/dialogs/dialogpatternproperties.h @@ -46,7 +46,8 @@ class DialogPatternProperties : public QDialog { Q_OBJECT public: - explicit DialogPatternProperties(VPattern *doc, VContainer *pattern, QWidget *parent = nullptr); + explicit DialogPatternProperties(const QString &filePath, VPattern *doc, VContainer *pattern, + QWidget *parent = nullptr); virtual ~DialogPatternProperties() Q_DECL_OVERRIDE; signals: void UpdateGradation(); @@ -59,8 +60,6 @@ public slots: void DescEdited(); void ChangeImage(); void ShowContextMenu(); -protected: - virtual void showEvent(QShowEvent *event) Q_DECL_OVERRIDE; private slots: void ToggleComboBox(); void DefValueChanged(); @@ -82,11 +81,11 @@ private: bool gradationChanged; bool defaultChanged; bool securityChanged; - bool isInitialized; QAction *deleteAction; QAction *changeImageAction; QAction *saveImageAction; QAction *showImageAction; + const QString &m_filePath; void SetHeightsChecked(bool enabled); void SetSizesChecked(bool enabled); diff --git a/src/app/valentina/dialogs/dialogpatternproperties.ui b/src/app/valentina/dialogs/dialogpatternproperties.ui index c71c33d56..a236c93fa 100644 --- a/src/app/valentina/dialogs/dialogpatternproperties.ui +++ b/src/app/valentina/dialogs/dialogpatternproperties.ui @@ -6,8 +6,8 @@ 0 0 - 657 - 532 + 757 + 692 @@ -28,6 +28,58 @@ Description + + + + + + Path: + + + + + + + + 0 + 0 + + + + false + + + background: transparent; + + + false + + + true + + + Path to the pattern file. + + + + + + + false + + + + 0 + 0 + + + + Show in Explorer + + + + + diff --git a/src/app/valentina/mainwindow.cpp b/src/app/valentina/mainwindow.cpp index 172c41fa4..0be605081 100644 --- a/src/app/valentina/mainwindow.cpp +++ b/src/app/valentina/mainwindow.cpp @@ -1212,7 +1212,7 @@ void MainWindow::OpenRecentFile() //--------------------------------------------------------------------------------------------------------------------- void MainWindow::PatternProperties() { - DialogPatternProperties proper(doc, pattern, this); + DialogPatternProperties proper(curFile, doc, pattern, this); connect(&proper, &DialogPatternProperties::UpdateGradation, this, &MainWindow::UpdateGradation); proper.exec(); } diff --git a/src/libs/vmisc/def.cpp b/src/libs/vmisc/def.cpp index ac74e5925..9e4276438 100644 --- a/src/libs/vmisc/def.cpp +++ b/src/libs/vmisc/def.cpp @@ -34,6 +34,7 @@ #include #include #include +#include // Keep synchronize all names with initialization in VTranslateVars class!!!!! //measurements @@ -1796,3 +1797,53 @@ QPixmap darkenPixmap(const QPixmap &pixmap) } return QPixmap::fromImage(img); } + + +//--------------------------------------------------------------------------------------------------------------------- +void ShowInGraphicalShell(const QString &filePath) +{ +#ifdef Q_OS_MAC + QStringList args; + args << "-e"; + args << "tell application \"Finder\""; + args << "-e"; + args << "activate"; + args << "-e"; + args << "select POSIX file \""+filePath+"\""; + args << "-e"; + args << "end tell"; + QProcess::startDetached("osascript", args); +#elif defined(Q_OS_WIN) + QProcess::startDetached(QString("explorer /select, \"%1\"").arg(QDir::toNativeSeparators(filePath))); +#else + const QString app = "xdg-open %d"; + QString cmd; + for (int i = 0; i < app.size(); ++i) + { + QChar c = app.at(i); + if (c == QLatin1Char('%') && i < app.size()-1) + { + c = app.at(++i); + QString s; + if (c == QLatin1Char('d')) + { + s = QLatin1Char('"') + QFileInfo(filePath).path() + QLatin1Char('"'); + } + else if (c == QLatin1Char('%')) + { + s = c; + } + else + { + s = QLatin1Char('%'); + s += c; + } + cmd += s; + continue; + } + cmd += c; + } + QProcess::startDetached(cmd); +#endif + +} diff --git a/src/libs/vmisc/def.h b/src/libs/vmisc/def.h index 5eb1224a9..dbb079861 100644 --- a/src/libs/vmisc/def.h +++ b/src/libs/vmisc/def.h @@ -615,6 +615,8 @@ QSharedPointer DefaultPrinter(QPrinter::PrinterMode mode = QPrinter::S QPixmap darkenPixmap(const QPixmap &pixmap) Q_REQUIRED_RESULT; +void ShowInGraphicalShell(const QString &filePath); + static inline bool VFuzzyComparePossibleNulls(double p1, double p2) Q_REQUIRED_RESULT; static inline bool VFuzzyComparePossibleNulls(double p1, double p2) {