Git Product home page Git Product logo

haveclip-desktop's People

Contributors

aither64 avatar i-to-r avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

haveclip-desktop's Issues

UX> It is possible to open multiple "application modal" Settings/About dialogs at the same time

void HaveClip::showSettings()
{
SettingsDialog *dlg = new SettingsDialog(manager->connectionManager());

void HaveClip::showAbout()
{
AboutDialog *dlg = new AboutDialog;

Steps to reproduce:

  1. Open the Settings dialog: open HaveClip’s tray icon menu > click on the "Settings" item.
  2. Switch (click) to another window.
  3. Repeat steps 1-2 several times.

Expected result (Qt 4.8: HaveClip v0.14 [macOS]): Only one instance of the SettingsDialog has been created and after the step 1, the previously opened dialog comes to the front and receives the focus.

Actual result (Qt 4.8: HaveClip v0.13 [Win]; Qt 5.12: HaveClip v0.15+ [macOS]): Multiple instance of the SettingsDialog has been created.
Multiple application-modal Settings dialogs
The same thing happens with the About dialog.

Importance: This is a minor issue.

Note: This occurs regardless of applying the changes from the "Fix missing focus on a dialog when LSUIElement key is set" commit, and even adding a call to setModal(true):

void HaveClip::showSettings()
{
	SettingsDialog *dlg = new SettingsDialog(manager->connectionManager());

#ifdef Q_OS_MAC
	dlg->setModal(true);
	// Set focus
	dlg->open();
	dlg->raise();
#endif

	if(dlg->exec() == QDialog::Accepted)
	{
		dlg->apply();

		Settings::get()->save();
	}

	dlg->deleteLater();  // or `dlg->setAttribute(Qt::WA_DeleteOnClose)` before `open()`
}

IMHO: Modal dialogs are not necessary here — there is no reason to block the Settings and About dialogs from being shown at the same time.

[macOS] HaveClip.app works only on first run after new (unique) build

Errors:

  • -25293 errSecAuthFailed
  • -67030 errSecCSInfoPlistFailed

The HaveClip.app works only on first run after new (unique) build — can't access the client cert/key in keychain (Secure Transport macOS native TLS/SSL backend automatically puts it there).

  1. Clear (delete existing ".app") and build

    $ codesign -dvvvv HaveClip.app
    HaveClip.app: code object is not signed at all
    
    $ codesign -vvvv HaveClip.app
    HaveClip.app: code object is not signed at all
    In architecture: x86_64
  2. First run from Terminal (Ok) — see "run-1-[0,1].  .log"
    $ HaveClip.app/Contents/MacOS/HaveClip 
    Listening on QHostAddress("192.0.2.1") 9999
    Remote control socket "/Users/_/Library/Application Support/HaveFun.cz/HaveClip-dev/haveclip.sock"
    Send message 4 28 bytes
    Received message 36
    Send "text/html"
    Send "text/plain"
    Send message 6 753 bytes
    Confirmed
    Received message 28
    Unable to reach "192.0.2.2" : QAbstractSocket::RemoteHostClosedError
    Connection error QAbstractSocket::RemoteHostClosedError  (0):  "The TLS/SSL connection has been closed"
    Communicator::onDisconnect
    
    $ codesign -dvvvv HaveClip.app
    Executable=/Users/_/.../HaveClip.app/Contents/MacOS/HaveClip
    Identifier=cz.havefun.HaveClip-dev
    Format=app bundle with Mach-O thin (x86_64)
    CodeDirectory v=20100 size=5160 flags=0x2(adhoc) hashes=156+3 location=system
    Hash type=sha256 size=32
    CandidateCDHash sha256=00c3d9c6e70d6166cd8b1b4cf74627e651d600e4
    Hash choices=sha256
    Page size=4096
    CDHash=00c3d9c6e70d6166cd8b1b4cf74627e651d600e4
    Signature=adhoc
    Info.plist entries=11
    TeamIdentifier=not set
    Sealed Resources version=2 rules=13 files=2
    Internal requirements count=0 size=12
    
    $ codesign -vvvv HaveClip.app
    HaveClip.app: valid on disk
    HaveClip.app: satisfies its Designated Requirement

    🗒️ run-1-[0,1].  .log

    Note: In the program output and in the logs, you may have noticed the reference to cz.havefun.HaveClip-dev — I temporarily renamed HaveClip to HaveClip-dev in "Main.cpp:35" and in a custom "Info.plist" file (CFBundleIdentifier key).

  3. 2th run from Terminal (Error) — see "run-2-[0,0].  .log"
    $ HaveClip.app/Contents/MacOS/HaveClip 
    Listening on QHostAddress("192.0.2.1") 9999
    Remote control socket "/Users/_/Library/Application Support/HaveFun.cz/HaveClip-dev/haveclip.sock"
    Unable to reach "192.0.2.2" : QAbstractSocket::SocketError(13)
    Connection error QAbstractSocket::SocketError(13)  (0):  "SSLHandshake failed: -25293"
    Communicator::onDisconnect

    🗒️ run-2-[0,0].  .log

  4. Re‑sign (result: CodeDirectory location=systemlocation=embedded)
    $ codesign -f -s - HaveClip.app
    HaveClip.app: replacing existing signature
    
    $ codesign -dvvvv HaveClip.app
    Executable=/Users/_/.../HaveClip.app/Contents/MacOS/HaveClip
    Identifier=cz.havefun.HaveClip-dev
    Format=app bundle with Mach-O thin (x86_64)
    CodeDirectory v=20100 size=5160 flags=0x2(adhoc) hashes=156+3 location=embedded
    VersionPlatform=1
    VersionMin=658432
    VersionSDK=658944
    Hash type=sha256 size=32
    CandidateCDHash sha256=4444444444444444444444444444444444444444
    Hash choices=sha256
    Page size=4096
    CDHash=4444444444444444444444444444444444444444
    Signature=adhoc
    Info.plist entries=11
    TeamIdentifier=not set
    Sealed Resources version=2 rules=13 files=2
    Internal requirements count=0 size=12
    
    $ codesign -vvvv HaveClip.app
    HaveClip.app: valid on disk
    HaveClip.app: satisfies its Designated Requirement
  5. 3th run from Terminal (Ok) — see "run-3-[1,1].  .log"
    $ HaveClip.app/Contents/MacOS/HaveClip 
    Listening on QHostAddress("192.0.2.1") 9999
    Remote control socket "/Users/_/Library/Application Support/HaveFun.cz/HaveClip-dev/haveclip.sock"
    Send message 4 28 bytes
    Received message 36
    Send "text/plain"
    Send message 6 66 bytes
    Confirmed
    Received message 28
    Unable to reach "192.0.2.2" : QAbstractSocket::RemoteHostClosedError
    Connection error QAbstractSocket::RemoteHostClosedError  (0):  "The TLS/SSL connection has been closed"
    Communicator::onDisconnect

    🗒️ run-3-[1,1].  .log

  6. 4th run from Terminal (Ok) — see "run-4-[1,0].  .log"
    $ HaveClip.app/Contents/MacOS/HaveClip 
    Listening on QHostAddress("192.0.2.1") 9999
    Remote control socket "/Users/_/Library/Application Support/HaveFun.cz/HaveClip-dev/haveclip.sock"
    Send message 4 28 bytes
    Received message 36
    Send "text/plain"
    Send message 6 90163 bytes
    Confirmed
    Received message 28
    Unable to reach "192.0.2.2" : QAbstractSocket::RemoteHostClosedError
    Connection error QAbstractSocket::RemoteHostClosedError  (0):  "The TLS/SSL connection has been closed"
    Communicator::onDisconnect

    🗒️ run-4-[1,0].  .log

Links:

Also:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.