MainWindow::MainWindow( QWidget *parent ) : QWidget( parent ) , cardsGroup( new QActionGroup( this ) ) , m_loaded( false ) , quitOnClose( false ) { qRegisterMetaType<QSslCertificate>("QSslCertificate"); setupUi( this ); cards->hide(); cards->hack(); languages->hack(); setWindowFlags( Qt::Window | Qt::CustomizeWindowHint | Qt::WindowMinimizeButtonHint | Qt::WindowTitleHint ); #if QT_VERSION >= 0x040500 setWindowFlags( windowFlags() | Qt::WindowCloseButtonHint ); #else setWindowFlags( windowFlags() | Qt::WindowSystemMenuHint ); #endif QApplication::instance()->installEventFilter( this ); Common *common = new Common( this ); QDesktopServices::setUrlHandler( "browse", common, "browse" ); QDesktopServices::setUrlHandler( "mailto", common, "mailTo" ); Settings s; // Mobile infoMobileCode->setValidator( new IKValidator( infoMobileCode ) ); infoMobileCode->setText( s.value( "Client/MobileCode" ).toString() ); infoMobileCell->setText( s.value( "Client/MobileNumber", "+372" ).toString() ); connect( infoMobileCode, SIGNAL(textEdited(QString)), SLOT(enableSign()) ); connect( infoMobileCell, SIGNAL(textEdited(QString)), SLOT(enableSign()) ); connect( infoSignMobile, SIGNAL(toggled(bool)), SLOT(showCardStatus()) ); // Buttons QButtonGroup *buttonGroup = new QButtonGroup( this ); buttonGroup->addButton( settings, HeadSettings ); buttonGroup->addButton( help, HeadHelp ); buttonGroup->addButton( homeSign, HomeSign ); buttonGroup->addButton( homeView, HomeView ); buttonGroup->addButton( homeCrypt, HomeCrypt ); introNext = introButtons->addButton( tr( "Next" ), QDialogButtonBox::ActionRole ); buttonGroup->addButton( introNext, IntroNext ); buttonGroup->addButton( introButtons->button( QDialogButtonBox::Cancel ), IntroBack ); signButton = signButtons->addButton( tr("Sign"), QDialogButtonBox::AcceptRole ); buttonGroup->addButton( signButton, SignSign ); buttonGroup->addButton( signButtons->button( QDialogButtonBox::Cancel ), SignCancel ); viewAddSignature = viewButtons->addButton( tr("Add signature"), QDialogButtonBox::ActionRole ); buttonGroup->addButton( viewAddSignature, ViewAddSignature ); buttonGroup->addButton( viewButtons->button( QDialogButtonBox::Close ), ViewClose ); connect( buttonGroup, SIGNAL(buttonClicked(int)), SLOT(buttonClicked(int)) ); connect( infoCard, SIGNAL(linkActivated(QString)), SLOT(parseLink(QString)) ); // Digidoc doc = new DigiDoc( this ); connect( cards, SIGNAL(activated(QString)), doc, SLOT(selectCard(QString)) ); connect( doc, SIGNAL(error(QString)), SLOT(showWarning(QString)) ); connect( doc, SIGNAL(dataChanged()), SLOT(showCardStatus()) ); m_loaded = doc->init(); // Translations appTranslator = new QTranslator( this ); commonTranslator = new QTranslator( this ); qtTranslator = new QTranslator( this ); QApplication::instance()->installTranslator( appTranslator ); QApplication::instance()->installTranslator( commonTranslator ); QApplication::instance()->installTranslator( qtTranslator ); lang << "et" << "en" << "ru"; QString deflang; switch( QLocale().language() ) { case QLocale::English: deflang = "en"; break; case QLocale::Russian: deflang = "ru"; break; case QLocale::Estonian: default: deflang = "et"; break; } on_languages_activated( lang.indexOf( s.value( "Main/Language", deflang ).toString() ) ); QActionGroup *langGroup = new QActionGroup( this ); QAction *etAction = langGroup->addAction( new QAction( langGroup ) ); QAction *enAction = langGroup->addAction( new QAction( langGroup ) ); QAction *ruAction = langGroup->addAction( new QAction( langGroup ) ); etAction->setData( 0 ); enAction->setData( 1 ); ruAction->setData( 2 ); etAction->setShortcut( Qt::CTRL + Qt::SHIFT + Qt::Key_1 ); enAction->setShortcut( Qt::CTRL + Qt::SHIFT + Qt::Key_2 ); ruAction->setShortcut( Qt::CTRL + Qt::SHIFT + Qt::Key_3 ); addAction( etAction ); addAction( enAction ); addAction( ruAction ); connect( langGroup, SIGNAL(triggered(QAction*)), SLOT(changeLang(QAction*)) ); connect( cardsGroup, SIGNAL(triggered(QAction*)), SLOT(changeCard(QAction*)) ); // Views signContentView->setColumnHidden( 2, true ); viewContentView->setColumnHidden( 3, true ); connect( signContentView, SIGNAL(remove(unsigned int)), SLOT(removeDocument(unsigned int)) ); connect( viewContentView, SIGNAL(remove(unsigned int)), SLOT(removeDocument(unsigned int)) ); // Actions closeAction = new QAction( tr("Close"), this ); closeAction->setShortcut( Qt::CTRL + Qt::Key_W ); connect( closeAction, SIGNAL(triggered()), this, SLOT(closeDoc()) ); addAction( closeAction ); #if defined(Q_OS_MAC) QMenuBar *bar = new QMenuBar; QMenu *menu = bar->addMenu( tr("&File") ); QAction *pref = menu->addAction( tr("Settings"), this, SLOT(showSettings()) ); pref->setMenuRole( QAction::PreferencesRole ); menu->addAction( closeAction ); #endif // Arguments QStringList args = qApp->arguments(); if( args.size() > 1 ) { quitOnClose = true; args.removeAt( 0 ); params = args; buttonClicked( HomeSign ); } }
MainWindow::MainWindow( QWidget *parent ) : QWidget( parent ) , cardsGroup( new QActionGroup( this ) ) { qRegisterMetaType<QSslCertificate>("QSslCertificate"); setupUi( this ); cards->hide(); setWindowFlags( Qt::Window | Qt::CustomizeWindowHint | Qt::WindowMinimizeButtonHint | Qt::WindowTitleHint ); #if QT_VERSION >= 0x040500 setWindowFlags( windowFlags() | Qt::WindowCloseButtonHint ); #else setWindowFlags( windowFlags() | Qt::WindowSystemMenuHint ); #endif QApplication::instance()->installEventFilter( this ); Common *common = new Common( this ); QDesktopServices::setUrlHandler( "browse", common, "browse" ); QDesktopServices::setUrlHandler( "mailto", common, "mailTo" ); QButtonGroup *buttonGroup = new QButtonGroup( this ); buttonGroup->addButton( settings, HeadSettings ); buttonGroup->addButton( help, HeadHelp ); buttonGroup->addButton( homeCreate, HomeCreate ); buttonGroup->addButton( homeView, HomeView ); introNext = introButtons->addButton( tr( "Next" ), QDialogButtonBox::ActionRole ); buttonGroup->addButton( introNext, IntroNext ); buttonGroup->addButton( introButtons->button( QDialogButtonBox::Cancel ), IntroBack ); viewCrypt = viewButtons->addButton( tr("Encrypt"), QDialogButtonBox::ActionRole ); buttonGroup->addButton( viewCrypt, ViewCrypt ); buttonGroup->addButton( viewButtons->button( QDialogButtonBox::Close ), ViewClose ); connect( buttonGroup, SIGNAL(buttonClicked(int)), SLOT(buttonClicked(int)) ); appTranslator = new QTranslator( this ); commonTranslator = new QTranslator( this ); qtTranslator = new QTranslator( this ); QApplication::instance()->installTranslator( appTranslator ); QApplication::instance()->installTranslator( commonTranslator ); QApplication::instance()->installTranslator( qtTranslator ); doc = new CryptoDoc( this ); connect( cards, SIGNAL(activated(QString)), doc, SLOT(selectCard(QString)) ); connect( doc, SIGNAL(error(QString,int,QString)), SLOT(showWarning(QString,int,QString)) ); connect( doc, SIGNAL(dataChanged()), SLOT(showCardStatus()) ); connect( viewContentView, SIGNAL(remove(int)), SLOT(removeDocument(int)) ); connect( viewContentView, SIGNAL(save(int,QString)), doc, SLOT(saveDocument(int,QString)) ); cards->hack(); languages->hack(); lang << "et" << "en" << "ru"; QString deflang; switch( QLocale().language() ) { case QLocale::English: deflang = "en"; break; case QLocale::Russian: deflang = "ru"; break; case QLocale::Estonian: default: deflang = "et"; break; } on_languages_activated( lang.indexOf( Settings().value( "Main/Language", deflang ).toString() ) ); QActionGroup *langGroup = new QActionGroup( this ); QAction *etAction = langGroup->addAction( new QAction( langGroup ) ); QAction *enAction = langGroup->addAction( new QAction( langGroup ) ); QAction *ruAction = langGroup->addAction( new QAction( langGroup ) ); etAction->setData( 0 ); enAction->setData( 1 ); ruAction->setData( 2 ); etAction->setShortcut( Qt::CTRL + Qt::SHIFT + Qt::Key_1 ); enAction->setShortcut( Qt::CTRL + Qt::SHIFT + Qt::Key_2 ); ruAction->setShortcut( Qt::CTRL + Qt::SHIFT + Qt::Key_3 ); addAction( etAction ); addAction( enAction ); addAction( ruAction ); connect( langGroup, SIGNAL(triggered(QAction*)), SLOT(changeLang(QAction*)) ); connect( cardsGroup, SIGNAL(triggered(QAction*)), SLOT(changeCard(QAction*)) ); close = new QAction( tr("Close"), this ); close->setShortcut( Qt::CTRL + Qt::Key_W ); connect( close, SIGNAL(triggered()), this, SLOT(closeDoc()) ); addAction( close ); #if defined(Q_OS_MAC) QMenuBar *bar = new QMenuBar; QMenu *menu = bar->addMenu( tr("&File") ); QAction *pref = menu->addAction( tr("Settings"), this, SLOT(showSettings()) ); pref->setMenuRole( QAction::PreferencesRole ); menu->addAction( close ); #endif QStringList args = qApp->arguments(); if( args.size() > 1 ) { args.removeAt( 0 ); params = args; buttonClicked( HomeCreate ); } }
MainWindow::MainWindow( const QStringList &_params ) : QWidget() , cardsGroup( new QActionGroup( this ) ) , quitOnClose( false ) { setAttribute( Qt::WA_DeleteOnClose, true ); setupUi( this ); cards->hide(); cards->hack(); languages->hack(); setWindowFlags( Qt::Window | Qt::CustomizeWindowHint | Qt::WindowMinimizeButtonHint ); #if QT_VERSION >= 0x040500 setWindowFlags( windowFlags() | Qt::WindowCloseButtonHint ); #else setWindowFlags( windowFlags() | Qt::WindowSystemMenuHint ); #endif Settings s; // Mobile infoMobileCode->setValidator( new IKValidator( infoMobileCode ) ); infoMobileCode->setText( s.value( "Client/MobileCode" ).toString() ); infoMobileCell->setText( s.value( "Client/MobileNumber", "+372" ).toString() ); connect( infoMobileCode, SIGNAL(textEdited(QString)), SLOT(enableSign()) ); connect( infoMobileCell, SIGNAL(textEdited(QString)), SLOT(enableSign()) ); connect( infoSignMobile, SIGNAL(toggled(bool)), SLOT(showCardStatus()) ); // Buttons QButtonGroup *buttonGroup = new QButtonGroup( this ); buttonGroup->addButton( settings, HeadSettings ); buttonGroup->addButton( help, HeadHelp ); buttonGroup->addButton( about, HeadAbout ); buttonGroup->addButton( homeSign, HomeSign ); buttonGroup->addButton( homeView, HomeView ); buttonGroup->addButton( homeCrypt, HomeCrypt ); introNext = introButtons->addButton( tr( "Next" ), QDialogButtonBox::ActionRole ); buttonGroup->addButton( introNext, IntroNext ); buttonGroup->addButton( introButtons->button( QDialogButtonBox::Cancel ), IntroBack ); signButton = signButtons->addButton( tr("Sign"), QDialogButtonBox::AcceptRole ); buttonGroup->addButton( signButton, SignSign ); buttonGroup->addButton( signButtons->button( QDialogButtonBox::Cancel ), SignCancel ); viewAddSignature = viewButtons->addButton( tr("Add signature"), QDialogButtonBox::ActionRole ); buttonGroup->addButton( viewAddSignature, ViewAddSignature ); buttonGroup->addButton( viewButtons->button( QDialogButtonBox::Close ), ViewClose ); connect( buttonGroup, SIGNAL(buttonClicked(int)), SLOT(buttonClicked(int)) ); connect( infoCard, SIGNAL(linkActivated(QString)), SLOT(parseLink(QString)) ); connect( cards, SIGNAL(activated(QString)), qApp->signer(), SLOT(selectCard(QString)), Qt::QueuedConnection ); connect( qApp, SIGNAL(dataChanged()), SLOT(showCardStatus()) ); // Digidoc doc = new DigiDoc( this ); // Translations lang << "et" << "en" << "ru"; QString deflang; switch( QLocale().language() ) { case QLocale::English: deflang = "en"; break; case QLocale::Russian: deflang = "ru"; break; case QLocale::Estonian: default: deflang = "et"; break; } on_languages_activated( lang.indexOf( s.value( "Main/Language", deflang ).toString() ) ); QActionGroup *langGroup = new QActionGroup( this ); QAction *etAction = langGroup->addAction( new QAction( langGroup ) ); QAction *enAction = langGroup->addAction( new QAction( langGroup ) ); QAction *ruAction = langGroup->addAction( new QAction( langGroup ) ); etAction->setData( 0 ); enAction->setData( 1 ); ruAction->setData( 2 ); etAction->setShortcut( Qt::CTRL + Qt::SHIFT + Qt::Key_1 ); enAction->setShortcut( Qt::CTRL + Qt::SHIFT + Qt::Key_2 ); ruAction->setShortcut( Qt::CTRL + Qt::SHIFT + Qt::Key_3 ); addAction( etAction ); addAction( enAction ); addAction( ruAction ); connect( langGroup, SIGNAL(triggered(QAction*)), SLOT(changeLang(QAction*)) ); connect( cardsGroup, SIGNAL(triggered(QAction*)), SLOT(changeCard(QAction*)) ); // Views signContentView->setColumnHidden( 2, true ); viewContentView->setColumnHidden( 3, true ); connect( signContentView, SIGNAL(remove(unsigned int)), SLOT(removeDocument(unsigned int)) ); connect( viewContentView, SIGNAL(remove(unsigned int)), SLOT(removeDocument(unsigned int)) ); if( !_params.empty() ) { quitOnClose = true; params = _params; buttonClicked( HomeSign ); } }