diff --git a/dde-clipboard/main.cpp b/dde-clipboard/main.cpp index e2ce31e..602668d 100644 --- a/dde-clipboard/main.cpp +++ b/dde-clipboard/main.cpp @@ -27,6 +27,18 @@ int main(int argc, char *argv[]) app->setApplicationName("dde-clipboard"); app->setApplicationDisplayName("DDE Clipboard"); app->setApplicationVersion("1.0"); + + QCommandLineOption alwaysShowOption("always-show" , "show and will never hide"); + + QCommandLineParser parser; + + parser.setApplicationDescription("DDE Clipboard"); + parser.addVersionOption(); + parser.addHelpOption(); + parser.addOption(alwaysShowOption); + + parser.process(*app); + app->loadTranslator(); if (!DGuiApplicationHelper::setSingleInstance(QString("dde-clipboard_%1").arg(getuid()))) { @@ -36,11 +48,17 @@ int main(int argc, char *argv[]) DLogManager::registerConsoleAppender(); DLogManager::registerFileAppender(); + DLogManager::registerJournalAppender(); QDBusConnection connection = QDBusConnection::sessionBus(); MainWindow w; + bool alwaysShow = parser.isSet(alwaysShowOption); + if (alwaysShow) { + w.setAlwaysShow(true); + } + QDBusInterface interface("org.deepin.dde.ClipboardLoader1", "/org/deepin/dde/ClipboardLoader1", "org.deepin.dde.ClipboardLoader1", QDBusConnection::sessionBus()); @@ -53,9 +71,9 @@ int main(int argc, char *argv[]) connection.registerObject(DBusClipBoardPath, &w); -#ifdef QT_DEBUG - w.showAni(); -#endif + if (alwaysShow) { + w.showAni(); + } return app->exec(); } diff --git a/dde-clipboard/mainwindow.cpp b/dde-clipboard/mainwindow.cpp index e8c865f..366d682 100644 --- a/dde-clipboard/mainwindow.cpp +++ b/dde-clipboard/mainwindow.cpp @@ -111,6 +111,9 @@ void MainWindow::showAni() void MainWindow::hideAni() { + if (m_alwaysShow) { + return; + } if (!m_hasComposite) { hide(); return; @@ -133,6 +136,9 @@ void MainWindow::Show() void MainWindow::Hide() { + if (m_alwaysShow) { + return; + } if (m_aniGroup->state() == QAbstractAnimation::Running) return; diff --git a/dde-clipboard/mainwindow.h b/dde-clipboard/mainwindow.h index 62ddf78..18202a5 100644 --- a/dde-clipboard/mainwindow.h +++ b/dde-clipboard/mainwindow.h @@ -52,6 +52,9 @@ class MainWindow : public DBlurEffectWidget Q_PROPERTY(double Opacity READ opacity NOTIFY OpacityChanged) double opacity(); + void setAlwaysShow(bool alwaysShow) { + m_alwaysShow = alwaysShow; + } signals: void OpacityChanged(double value) const; @@ -154,6 +157,8 @@ private Q_SLOTS: DWindowManagerHelper *m_wmHelper; bool m_hasComposite = false; + + bool m_alwaysShow = false; }; #endif // MAINWINDOW_H