BoardView::BoardView(QWidget *parent) :QTableView(parent) { QHeaderView *hHeader = horizontalHeader(); hHeader->setResizeMode(QHeaderView::Fixed); hHeader->setDefaultAlignment( Qt::AlignHCenter ); hHeader->setDefaultSectionSize(50); hHeader->setClickable(false); hHeader->setMovable(false); QHeaderView *vHeader = verticalHeader(); vHeader->setResizeMode(QHeaderView::Fixed); vHeader->setDefaultAlignment( Qt::AlignVCenter ); vHeader->setDefaultSectionSize(50); vHeader->setClickable(false); vHeader->setMovable(false); setSelectionMode(QAbstractItemView::SingleSelection); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setItemDelegate(new BoardDelegate(this)); setStyleSheet("QHeaderView::section {background-color: #ffffe7; border: 1px solid #74440e; color: black; }" "QTableCornerButton::section { background-color: #ffffe7; border: 1px solid #74440e; color: black; }" "QToolTip { background-color: #ffeeaf; padding: 2px; border: 1px solid #74440e; }"); }
RemoteMachineMonitorDialogImpl::RemoteMachineMonitorDialogImpl( QWidget * p, RemoteMachineMonitor* monitor, bool runTaskMode ) : QDialog( p ), PING_YES( ":core/images/remote_machine_ping_yes.png" ), PING_NO( ":core/images/remote_machine_ping_no.png" ), PING_WAIT_FOR_RESPONSE( ":core/images/remote_machine_ping_waiting_response.png" ), PING_QUESTION(":core/images/question.png"), rmm(monitor), getPublicMachinesTask( NULL ) { setupUi( this ); // add log-view widget QVBoxLayout* logLayout = new QVBoxLayout(); logViewHolder->setLayout(logLayout); LogViewWidget* logView = new LogViewWidget(prepareLogFilter()); logView->setSearchBoxMode(LogViewSearchBox_Hidden); logLayout->addWidget(logView); currentlySelectedItemIndex = -1; assert(rmm != NULL); QList< RemoteMachineSettingsPtr > monitorItems = rmm->getRemoteMachineMonitorItems(); int sz = monitorItems.size(); for( int i = 0; i < sz; ++i ) { const RemoteMachineSettingsPtr& item = monitorItems.at( i ); addMachineSettings( item, false ); } rsLog.details(tr("Found %1 remote machine records").arg(sz)); connect( okPushButton, SIGNAL( clicked() ), SLOT( sl_okPushButtonClicked() ) ); connect( cancelPushButton, SIGNAL( clicked() ), SLOT( sl_cancelPushButtonClicked() ) ); connect( addPushButton, SIGNAL( clicked() ), SLOT( sl_addPushButtonClicked() ) ); connect( removePushButton, SIGNAL( clicked() ), SLOT( sl_removePushButtonClicked() ) ); connect( modifyPushButton, SIGNAL( clicked() ), SLOT( sl_modifyPushButtonClicked() ) ); connect( showTasksButton, SIGNAL(clicked()), SLOT(sl_showUserTasksButtonClicked()) ); connect( machinesTreeWidget, SIGNAL( itemSelectionChanged() ), SLOT( sl_selectionChanged() ) ); connect( pingPushButton, SIGNAL( clicked() ), SLOT( sl_pingPushButtonClicked() ) ); connect( getPublicMachinesButton, SIGNAL( clicked() ), SLOT( sl_getPublicMachinesButtonClicked() ) ); okPushButton->setDefault( true ); QHeaderView * header = machinesTreeWidget->header(); header->setStretchLastSection( false ); #if (QT_VERSION < 0x050000) //Qt 5 header->setClickable( false ); header->setResizeMode( 1, QHeaderView::Stretch ); #else header->setSectionsClickable( false ); header->setSectionResizeMode( 1, QHeaderView::Stretch ); #endif if( runTaskMode ) { okPushButton->setText( OK_BUTTON_RUN ); } initMachineActionsMenu(); updateState(); }
TableView::TableView(QWidget * parent) : QTableView(parent) { QHeaderView * header = verticalHeader(); header->setHidden(true); header = horizontalHeader(); header->setClickable(false); header->setDragEnabled(false); header->setResizeMode(QHeaderView::Fixed); }
//----------------------------------------------------------------------------- //! //----------------------------------------------------------------------------- void tWorkProfilesDialog::Init() { QSize iconSize( 68, 68 ); m_pProfilesTable = new tTableWidget( 0, eColumnCount, this ); m_pProfilesTable->setFrameShape( QFrame::NoFrame ); m_pProfilesTable->SetSoleFocus( true ); m_pProfilesTable->SetWrapping( false ); QHeaderView* pHorizontalHeaderView = m_pProfilesTable->horizontalHeader(); pHorizontalHeaderView->setClickable( false ); pHorizontalHeaderView->resizeSection( eIconColumn, iconSize.width() ); pHorizontalHeaderView->setResizeMode( eNameColumn, QHeaderView::Stretch ); QString nameString = QString( tr( "Name" ) ); QSize headerTextSize = pHorizontalHeaderView->fontMetrics().size( 0, nameString ); int w = headerTextSize.width() + 10; pHorizontalHeaderView->resizeSection( eNameColumn, w ); QStringList headings; headings << "" << nameString << tr( "Enabled" ) << tr( "Active" ); m_pProfilesTable->setHorizontalHeaderLabels( headings ); pHorizontalHeaderView->setDefaultAlignment( Qt::AlignLeft ); QHeaderView* pVerticalHeaderView = m_pProfilesTable->verticalHeader(); pVerticalHeaderView->hide(); pVerticalHeaderView->setResizeMode( QHeaderView::Fixed ); pVerticalHeaderView->setDefaultSectionSize( iconSize.height() ); QVBoxLayout* pVLayout = new QVBoxLayout( this ); pVLayout->setContentsMargins( 0, 0, 0, 0 ); pVLayout->addWidget( m_pProfilesTable ); setLayout( pVLayout ); UpdateTable(); m_pProfilesTable->selectRow( m_ProfileIndex ); }
CupsOptions::CupsOptions(QWidget* parent, QString Geraet) : QDialog( parent ) { FlagsOpt.clear(); setModal(true); setWindowTitle( tr( "Printer Options" ) ); setWindowIcon(QIcon(loadIcon ( "AppIcon.png" ))); prefs = PrefsManager::instance()->prefsFile->getContext("cups_options"); setSizeGripEnabled(true); CupsOptionsLayout = new QVBoxLayout( this ); CupsOptionsLayout->setSpacing( 5 ); CupsOptionsLayout->setMargin( 10 ); Table = new QTableWidget(0, 2, this); Table->setSortingEnabled(false); Table->setSelectionMode(QAbstractItemView::NoSelection); Table->verticalHeader()->hide(); Table->setHorizontalHeaderItem(0, new QTableWidgetItem( tr("Option"))); Table->setHorizontalHeaderItem(1, new QTableWidgetItem( tr("Value"))); QHeaderView* headerH = Table->horizontalHeader(); headerH->setStretchLastSection(true); headerH->setMovable(false); headerH->setClickable(false); headerH->setResizeMode(QHeaderView::Fixed); Table->setMinimumSize(300, 100); #ifdef HAVE_CUPS int i; cups_dest_t *dests; cups_dest_t *dest; int num_dests; const char *filename; /* PPD filename */ ppd_file_t *ppd; /* PPD data */ ppd_group_t *group; /* Current group */ num_dests = cupsGetDests(&dests); dest = cupsGetDest(Geraet.toLocal8Bit().constData(), NULL, num_dests, dests); if (!(dest == NULL || (filename = cupsGetPPD(dest->name)) == NULL || (ppd = ppdOpenFile(filename)) == NULL)) { ppdMarkDefaults(ppd); cupsMarkOptions(ppd, dest->num_options, dest->options); QStringList opts; QString Marked = ""; KeyToText.clear(); KeyToDefault.clear(); for (i = ppd->num_groups, group = ppd->groups; i > 0; i --, ++group) { int ix; ppd_option_t *option; /* Current option */ ppd_choice_t *choice; /* Current choice */ for (ix = group->num_options, option = group->options; ix > 0; ix --, ++option) { int j; Marked = ""; struct OpData Daten; opts.clear(); for (j = option->num_choices, choice = option->choices; j > 0; j --, ++choice) { opts.append(QString(choice->choice)); if (choice->marked) Marked = QString(choice->choice); } if (!Marked.isEmpty()) { Table->setRowCount(Table->rowCount()+1); Table->setItem(Table->rowCount()-1, 0, new QTableWidgetItem(QString(option->text))); QComboBox *item = new QComboBox( this ); item->setEditable(false); FlagsOpt.append(item); Daten.Cnum = static_cast<int>(FlagsOpt.count()-1); Daten.KeyW = QString(option->keyword); KeyToText[QString(option->text)] = Daten; item->addItems(opts); int lastSelected = prefs->getInt(QString(option->text), 0); if (lastSelected >= static_cast<int>(opts.count())) lastSelected = 0; item->setCurrentIndex(lastSelected); KeyToDefault[QString(option->text)] = Marked; Table->setCellWidget(Table->rowCount()-1, 1, item); } } } ppdClose(ppd); cupsFreeDests(num_dests, dests); } struct OpData Daten; Table->setRowCount(Table->rowCount()+1); Table->setItem(Table->rowCount()-1, 0, new QTableWidgetItem(QString( tr("Page Set")))); QComboBox *item4 = new QComboBox( this ); item4->setEditable(false); FlagsOpt.append(item4); Daten.Cnum = static_cast<int>(FlagsOpt.count()-1); Daten.KeyW = "page-set"; KeyToText["Page Set"] = Daten; item4->addItem( tr("All Pages")); item4->addItem( tr("Even Pages only")); item4->addItem( tr("Odd Pages only")); int lastSelected = prefs->getInt( tr("Page Set"), 0); if (lastSelected >= 3) lastSelected = 0; item4->setCurrentIndex(lastSelected); KeyToDefault["Page Set"] = tr("All Pages"); Table->setCellWidget(Table->rowCount()-1, 1, item4); Table->setRowCount(Table->rowCount()+1); Table->setItem(Table->rowCount()-1, 0, new QTableWidgetItem(QString( tr("Mirror")))); QComboBox *item2 = new QComboBox( this ); item2->setEditable(false); FlagsOpt.append(item2); Daten.Cnum = static_cast<int>(FlagsOpt.count()-1); Daten.KeyW = "mirror"; KeyToText["Mirror"] = Daten; item2->addItem(CommonStrings::trNo); item2->addItem(CommonStrings::trYes); item2->setCurrentIndex(0); lastSelected = prefs->getInt( tr("Mirror"), 0); if (lastSelected >= 2) lastSelected = 0; item2->setCurrentIndex(lastSelected); KeyToDefault["Mirror"] = CommonStrings::trNo; Table->setCellWidget(Table->rowCount()-1, 1, item2); Table->setRowCount(Table->rowCount()+1); Table->setItem(Table->rowCount()-1, 0, new QTableWidgetItem(QString( tr("Orientation")))); QComboBox *item5 = new QComboBox( this ); item5->setEditable(false); FlagsOpt.append(item5); Daten.Cnum = static_cast<int>(FlagsOpt.count()-1); Daten.KeyW = "orientation"; KeyToText["Orientation"] = Daten; item5->addItem( tr("Portrait")); item5->addItem( tr("Landscape")); item5->setCurrentIndex(0); lastSelected = prefs->getInt( tr("Orientation"), 0); if (lastSelected >= 2) lastSelected = 0; item5->setCurrentIndex(lastSelected); KeyToDefault["Orientation"] = tr("Portrait"); Table->setCellWidget(Table->rowCount()-1, 1, item5); Table->setRowCount(Table->rowCount()+1); Table->setItem(Table->rowCount()-1, 0, new QTableWidgetItem(QString( tr("N-Up Printing")))); QComboBox *item3 = new QComboBox( this ); item3->setEditable(false); FlagsOpt.append(item3); Daten.Cnum = static_cast<int>(FlagsOpt.count()-1); Daten.KeyW = "number-up"; KeyToText["N-Up Printing"] = Daten; item3->addItem("1 "+ tr("Page per Sheet")); item3->addItem("2 "+ tr("Pages per Sheet")); item3->addItem("4 "+ tr("Pages per Sheet")); item3->addItem("6 "+ tr("Pages per Sheet")); item3->addItem("9 "+ tr("Pages per Sheet")); item3->addItem("16 "+ tr("Pages per Sheet")); lastSelected = prefs->getInt( tr("N-Up Printing"), 0); if (lastSelected >= 6) lastSelected = 0; item3->setCurrentIndex(lastSelected); KeyToDefault["N-Up Printing"] = "1 "+ tr("Page per Sheet"); Table->setCellWidget(Table->rowCount()-1, 1, item3); #endif Table->resizeColumnsToContents(); CupsOptionsLayout->addWidget( Table ); Layout2 = new QHBoxLayout; Layout2->setSpacing( 5 ); Layout2->setMargin( 0 ); QSpacerItem* spacer = new QSpacerItem( 2, 2, QSizePolicy::Expanding, QSizePolicy::Minimum ); Layout2->addItem( spacer ); PushButton1 = new QPushButton( CommonStrings::tr_OK, this ); PushButton1->setDefault( true ); Layout2->addWidget( PushButton1 ); PushButton2 = new QPushButton( CommonStrings::tr_Cancel, this ); PushButton2->setDefault( false ); PushButton1->setFocus(); Layout2->addWidget( PushButton2 ); CupsOptionsLayout->addLayout( Layout2 ); setMinimumSize( sizeHint() ); resize(minimumSizeHint().expandedTo(QSize(300, 100))); //tooltips Table->setToolTip( "<qt>" + tr( "This panel displays various CUPS options when printing. The exact parameters available will depend on your printer driver. You can confirm CUPS support by selecting Help > About. Look for the listings: C-C-T These equate to C=CUPS C=littlecms T=TIFF support. Missing library support is indicated by a *" ) + "</qt>" ); // signals and slots connections connect( PushButton2, SIGNAL( clicked() ), this, SLOT( reject() ) ); connect( PushButton1, SIGNAL( clicked() ), this, SLOT( accept() ) ); }
FontPrefs::FontPrefs( QWidget* parent, bool Hdoc, QString PPath, ScribusDoc* doc ) : QTabWidget( parent ) { RList = PrefsManager::instance()->appPrefs.GFontSub; HomeP = PPath; DocAvail = Hdoc; UsedFonts.clear(); CurrentPath = ""; docc = doc; setMinimumSize(fontMetrics().width( tr( "Available Fonts" )+ tr( "Font Substitutions" )+ tr( "Additional Paths" ))+180, 200); tab1 = new QWidget( this ); tab1Layout = new QVBoxLayout( tab1 ); tab1Layout->setMargin(10); tab1Layout->setSpacing(5); fontList = new FontListView(tab1); fontList->setModel(new FontListModel(fontList)); tab1Layout->addWidget( fontList ); addTab( tab1, tr( "&Available Fonts" ) ); tab = new QWidget( this ); tabLayout = new QVBoxLayout( tab ); tabLayout->setMargin(10); tabLayout->setSpacing(5); Table3 = new QTableWidget(0, 2, tab ); Table3->setHorizontalHeaderItem(0, new QTableWidgetItem( tr("Font Name"))); Table3->setHorizontalHeaderItem(1, new QTableWidgetItem( tr("Replacement"))); Table3->setSortingEnabled(false); Table3->setSelectionBehavior( QAbstractItemView::SelectRows ); QHeaderView *header = Table3->horizontalHeader(); header->setMovable(false); header->setClickable(false); header->setResizeMode(QHeaderView::Stretch); Table3->verticalHeader()->hide(); Table3->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); tabLayout->addWidget( Table3 ); Layout2a = new QHBoxLayout; Layout2a->setMargin(0); Layout2a->setSpacing(5); QSpacerItem* spacer1 = new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum ); Layout2a->addItem( spacer1 ); DelB = new QPushButton( tr( "&Delete" ), tab ); DelB->setEnabled(false); Layout2a->addWidget( DelB ); QSpacerItem* spacer2 = new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum ); Layout2a->addItem( spacer2 ); tabLayout->addLayout( Layout2a ); addTab( tab, tr( "Font &Substitutions" ) ); tab3 = new QWidget( this ); tab3Layout = new QHBoxLayout( tab3 ); tab3Layout->setMargin(10); tab3Layout->setSpacing(5); // If we're being called for global application preferences, not document // preferences, we let the user customize font search paths. Because things // go rather badly if paths are changed/removed while a doc is open, the // control is also not displayed if there is a document open. if (!DocAvail && !ScCore->primaryMainWindow()->HaveDoc) { PathList = new QListWidget( tab3 ); readPaths(); PathList->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); tab3Layout->addWidget( PathList ); LayoutR = new QVBoxLayout; LayoutR->setMargin(0); LayoutR->setSpacing(5); ChangeB = new QPushButton( tr( "C&hange..." ), tab3 ); LayoutR->addWidget( ChangeB ); AddB = new QPushButton( tr( "A&dd..." ), tab3 ); LayoutR->addWidget( AddB ); RemoveB = new QPushButton( tr( "&Remove" ), tab3 ); LayoutR->addWidget( RemoveB ); QSpacerItem* spacer_2 = new QSpacerItem( 0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding ); LayoutR->addItem( spacer_2 ); tab3Layout->addLayout( LayoutR ); ChangeB->setEnabled(false); RemoveB->setEnabled(false); connect(PathList, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(SelectPath(QListWidgetItem*))); connect(AddB, SIGNAL(clicked()), this, SLOT(AddPath())); connect(ChangeB, SIGNAL(clicked()), this, SLOT(ChangePath())); connect(RemoveB, SIGNAL(clicked()), this, SLOT(DelPath())); }
/** * Constructor */ FlarmAliasList::FlarmAliasList( QWidget *parent ) : QWidget( parent ), list(0), m_enableScroller(0) { setAttribute( Qt::WA_DeleteOnClose ); QHBoxLayout *topLayout = new QHBoxLayout( this ); topLayout->setSpacing(5); list = new QTableWidget( 0, 2, this ); list->setSelectionBehavior( QAbstractItemView::SelectRows ); // list->setSelectionMode( QAbstractItemView::SingleSelection ); list->setAlternatingRowColors( true ); list->setVerticalScrollMode( QAbstractItemView::ScrollPerPixel ); list->setHorizontalScrollMode( QAbstractItemView::ScrollPerPixel ); #ifdef ANDROID QScrollBar* lvsb = list->verticalScrollBar(); lvsb->setStyleSheet( Layout::getCbSbStyle() ); #endif #ifdef QSCROLLER QScroller::grabGesture( list->viewport(), QScroller::LeftMouseButtonGesture ); #endif #ifdef QTSCROLLER QtScroller::grabGesture( list->viewport(), QtScroller::LeftMouseButtonGesture ); #endif QString style = "QTableView QTableCornerButton::section { background: gray }"; list->setStyleSheet( style ); QHeaderView *vHeader = list->verticalHeader(); style = "QHeaderView::section { width: 2em }"; vHeader->setStyleSheet( style ); // set new row height from configuration int afMargin = GeneralConfig::instance()->getListDisplayAFMargin(); rowDelegate = new RowDelegate( list, afMargin ); list->setItemDelegate( rowDelegate ); // hide vertical headers // QHeaderView *vHeader = list->verticalHeader(); // vHeader->setVisible(false); QHeaderView* hHeader = list->horizontalHeader(); hHeader->setStretchLastSection( true ); #if QT_VERSION >= 0x050000 hHeader->setSectionsClickable( true ); #else hHeader->setClickable( true ); #endif connect( hHeader, SIGNAL(sectionClicked(int)), this, SLOT(slot_HeaderClicked(int)) ); QTableWidgetItem *item = new QTableWidgetItem( tr(" Flarm ID ") ); list->setHorizontalHeaderItem( 0, item ); item = new QTableWidgetItem( tr(" Alias (15) ") ); list->setHorizontalHeaderItem( 1, item ); connect( list, SIGNAL(cellChanged( int, int )), this, SLOT(slot_CellChanged( int, int )) ); connect( list, SIGNAL(cellClicked( int, int )), this, SLOT(slot_CellClicked( int, int )) ); connect( list, SIGNAL(itemSelectionChanged()), this, SLOT(slot_ItemSelectionChanged()) ); topLayout->addWidget( list, 2 ); QGroupBox* buttonBox = new QGroupBox( this ); int buttonSize = Layout::getButtonSize(); int iconSize = buttonSize - 5; QPushButton *addButton = new QPushButton; addButton->setIcon( QIcon( GeneralConfig::instance()->loadPixmap( "add.png" ) ) ); addButton->setIconSize(QSize(iconSize, iconSize)); // addButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::QSizePolicy::Preferred); addButton->setMinimumSize(buttonSize, buttonSize); addButton->setMaximumSize(buttonSize, buttonSize); deleteButton = new QPushButton; deleteButton->setIcon( QIcon( GeneralConfig::instance()->loadPixmap( "delete.png" ) ) ); deleteButton->setIconSize(QSize(iconSize, iconSize)); // deleteButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::QSizePolicy::Preferred); deleteButton->setMinimumSize(buttonSize, buttonSize); deleteButton->setMaximumSize(buttonSize, buttonSize); deleteButton->setEnabled(false); #if defined(QSCROLLER) || defined(QTSCROLLER) m_enableScroller = new QCheckBox("]["); m_enableScroller->setCheckState( Qt::Checked ); m_enableScroller->setMinimumHeight( Layout::getButtonSize(12) ); connect( m_enableScroller, SIGNAL(stateChanged(int)), this, SLOT(slot_scrollerBoxToggled(int)) ); #endif QPushButton *okButton = new QPushButton; okButton->setIcon(QIcon(GeneralConfig::instance()->loadPixmap("ok.png"))); okButton->setIconSize(QSize(iconSize, iconSize)); // okButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::QSizePolicy::Preferred); okButton->setMinimumSize(buttonSize, buttonSize); okButton->setMaximumSize(buttonSize, buttonSize); QPushButton *closeButton = new QPushButton; closeButton->setIcon(QIcon(GeneralConfig::instance()->loadPixmap("cancel.png"))); closeButton->setIconSize(QSize(iconSize, iconSize)); // closeButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::QSizePolicy::Preferred); closeButton->setMinimumSize(buttonSize, buttonSize); closeButton->setMaximumSize(buttonSize, buttonSize); connect( addButton, SIGNAL(clicked() ), this, SLOT(slot_AddRow()) ); connect( deleteButton, SIGNAL(clicked() ), this, SLOT(slot_DeleteRows()) ); connect( okButton, SIGNAL(clicked() ), this, SLOT(slot_Ok()) ); connect( closeButton, SIGNAL(clicked() ), this, SLOT(slot_Close()) ); // vertical box with operator buttons QVBoxLayout *vbox = new QVBoxLayout; vbox->setSpacing(0); vbox->addWidget( addButton ); vbox->addSpacing(32); vbox->addWidget( deleteButton ); vbox->addStretch(2); #if defined(QSCROLLER) || defined(QTSCROLLER) vbox->addWidget( m_enableScroller, 0, Qt::AlignCenter ); vbox->addStretch(2); #endif vbox->addWidget( okButton ); vbox->addSpacing(32); vbox->addWidget( closeButton ); buttonBox->setLayout( vbox ); topLayout->addWidget( buttonBox ); // load alias data into table if( ! aliasHash.isEmpty() ) { QMutableHashIterator<QString, QString> it(aliasHash); while( it.hasNext() ) { it.next(); slot_AddRow( it.key(), it.value() ); } list->sortByColumn( 1, Qt::AscendingOrder ); } }
/** * Constructor */ Logbook::Logbook( QWidget *parent ) : QWidget( parent ), m_tableModified(false) { setObjectName("Logbook"); setWindowFlags(Qt::Tool); setWindowTitle( tr("Logbook")); setWindowModality( Qt::WindowModal ); setAttribute(Qt::WA_DeleteOnClose); // Resize the window to the same size as the main window has. That will // completely hide the parent window. resize( MainWindow::mainWindow()->size() ); QHBoxLayout *topLayout = new QHBoxLayout( this ); topLayout->setSpacing(5); m_table = new QTableWidget( 0, 8, this ); m_table->setVerticalScrollMode( QAbstractItemView::ScrollPerPixel ); m_table->setHorizontalScrollMode( QAbstractItemView::ScrollPerPixel ); #ifdef ANDROID QScrollBar* lvsb = m_table->verticalScrollBar(); lvsb->setStyleSheet( Layout::getCbSbStyle() ); #endif #ifdef QSCROLLER QScroller::grabGesture( m_table->viewport(), QScroller::LeftMouseButtonGesture ); #endif #ifdef QTSCROLLER QtScroller::grabGesture( m_table->viewport(), QtScroller::LeftMouseButtonGesture ); #endif m_table->setSelectionBehavior( QAbstractItemView::SelectRows ); m_table->setAlternatingRowColors( true ); QHeaderView* hHeader = m_table->horizontalHeader(); // that makes trouble on N810 // hHeader->setStretchLastSection( true ); #if QT_VERSION >= 0x050000 hHeader->setSectionsClickable( true ); #else hHeader->setClickable( true ); #endif connect( hHeader, SIGNAL(sectionClicked(int)), this, SLOT(slot_HeaderClicked(int)) ); setTableHeader(); topLayout->addWidget( m_table, 2 ); QGroupBox* buttonBox = new QGroupBox( this ); int buttonSize = Layout::getButtonSize(); int iconSize = buttonSize - 5; m_deleteAllButton = new QPushButton; m_deleteAllButton->setIcon( QIcon( GeneralConfig::instance()->loadPixmap( "clear.png" ) ) ); m_deleteAllButton->setIconSize(QSize(iconSize, iconSize)); m_deleteAllButton->setMinimumSize(buttonSize, buttonSize); m_deleteAllButton->setMaximumSize(buttonSize, buttonSize); m_deleteButton = new QPushButton; m_deleteButton->setIcon( QIcon( GeneralConfig::instance()->loadPixmap( "delete.png" ) ) ); m_deleteButton->setIconSize(QSize(iconSize, iconSize)); m_deleteButton->setMinimumSize(buttonSize, buttonSize); m_deleteButton->setMaximumSize(buttonSize, buttonSize); m_deleteButton->setEnabled(false); m_okButton = new QPushButton; m_okButton->setIcon(QIcon(GeneralConfig::instance()->loadPixmap("ok.png"))); m_okButton->setIconSize(QSize(iconSize, iconSize)); m_okButton->setMinimumSize(buttonSize, buttonSize); m_okButton->setMaximumSize(buttonSize, buttonSize); QPushButton *closeButton = new QPushButton; closeButton->setIcon(QIcon(GeneralConfig::instance()->loadPixmap("cancel.png"))); closeButton->setIconSize(QSize(iconSize, iconSize)); closeButton->setMinimumSize(buttonSize, buttonSize); closeButton->setMaximumSize(buttonSize, buttonSize); connect( m_deleteAllButton, SIGNAL(clicked() ), this, SLOT(slot_DeleteAllRows()) ); connect( m_deleteButton, SIGNAL(clicked() ), this, SLOT(slot_DeleteRows()) ); connect( m_okButton, SIGNAL(clicked() ), this, SLOT(slot_Ok()) ); connect( closeButton, SIGNAL(clicked() ), this, SLOT(slot_Close()) ); // vertical box with operator buttons QVBoxLayout *vbox = new QVBoxLayout; vbox->setSpacing(0); vbox->addWidget( m_deleteAllButton ); vbox->addSpacing(32); vbox->addWidget( m_deleteButton ); vbox->addStretch(2); vbox->addWidget( m_okButton ); vbox->addSpacing(32); vbox->addWidget( closeButton ); buttonBox->setLayout( vbox ); topLayout->addWidget( buttonBox ); QString style = "QTableView QTableCornerButton::section { background: gray }"; m_table->setStyleSheet( style ); QHeaderView *vHeader = m_table->verticalHeader(); style = "QHeaderView::section { width: 2em }"; vHeader->setStyleSheet( style ); // set new row height from configuration int afMargin = GeneralConfig::instance()->getListDisplayAFMargin(); rowDelegate = new RowDelegate( m_table, afMargin ); m_table->setItemDelegate( rowDelegate ); loadLogbookData(); }
//-------------------------------------------------------------------------------------- //! The AIS Safety and DSC distress message page //-------------------------------------------------------------------------------------- tVesselMessagesTabPage::tVesselMessagesTabPage( int numKeys, bool soleFocus, QWidget* pParent ) : QWidget( pParent ), m_NumKeys(numKeys) { m_pTableTitle = new QLabel( tr( "Messages", "[title]" ), this ); m_pTableTitle->hide(); CreateActions(); m_pMessageTable = new tTableWidget( 0, columnCount, this ); m_pMessageTable->setFrameShape( QFrame::NoFrame ); m_pMessageTable->SetSoleFocus( soleFocus ); m_pMessageTable->SetWrapping( soleFocus == true ); m_pMessageTable->hideColumn( mmsiColumn ); m_pMessageTable->hideColumn( sourceTypeColumn ); m_pMessageTable->hideColumn( uidColumn ); Connect( m_pMessageTable, SIGNAL( itemClicked( QTableWidgetItem* ) ), m_pDetailsAct, SLOT( trigger() ) ); QHeaderView* pHorizontalHeaderView = m_pMessageTable->horizontalHeader(); pHorizontalHeaderView->setClickable( false ); pHorizontalHeaderView->setResizeMode( timeColumn, QHeaderView::Fixed ); pHorizontalHeaderView->setResizeMode( messageColumn, QHeaderView::Stretch ); QString timeString = QString( tr( "Time", "[title]" ) ); QSize headerTextSize = pHorizontalHeaderView->fontMetrics().size( 0, timeString ); m_maxTimeWidth = headerTextSize.width() + 10; pHorizontalHeaderView->resizeSection( timeColumn, m_maxTimeWidth ); QStringList headings; headings << timeString << tr( "Message", "[title]" ); m_pMessageTable->setHorizontalHeaderLabels( headings ); SetHeaderFont(); // Prevents header bold font pHorizontalHeaderView->setHighlightSections( false ); pHorizontalHeaderView->setDefaultAlignment( Qt::AlignLeft ); QHeaderView* pVerticalHeaderView = m_pMessageTable->verticalHeader(); pVerticalHeaderView->hide(); pVerticalHeaderView->setResizeMode( QHeaderView::Fixed ); pVerticalHeaderView->setDefaultSectionSize( QFontMetrics( QApplication::font() ).height() * 2 + 10 ); QVBoxLayout* pVLayout = new QVBoxLayout( this ); pVLayout->setContentsMargins( 0, 0, 0, 0 ); pVLayout->addWidget( m_pTableTitle ); pVLayout->addWidget( m_pMessageTable ); setLayout( pVLayout ); m_pResizeTimer = new QTimer( this ); Connect( m_pResizeTimer, SIGNAL(timeout()), this, SLOT( Resize() ) ); RefreshTable(); m_pMessageTable->selectRow( 0 ); if ( tProductSettings::Instance().AISAllowed() == true ) { tAisEngine* pAisEngine = tGlobal<tAisEngine>::Instance(); Connect( pAisEngine, SIGNAL( NewSafetyMessage( tAisSafetyMessage ) ), this, SLOT( NewAisSafetyMessage( const tAisSafetyMessage& ) ) ); Connect( pAisEngine, SIGNAL( RemoveSafetyMessage( int ) ), this, SLOT( RemoveAisSafetyMessage( int ) ) ); }
int main(int argc, char *argv[]) { QApplication app(argc, argv); QWidget * main_wg = new QWidget; // cria um objeto "splitter" para compartilhar widgets: QSplitter *splitter = new QSplitter(main_wg); // cria um "model" usando o "StandardModel" QStandardItemModel *model = new QStandardItemModel; const int totCols = 3; int col; // define os títulos das colunas: for (col = 0; col < totCols; ++col) { model->setHorizontalHeaderItem(col, new QStandardItem( QString("COL-%1").arg(col+1) ) ); } // alimenta linhas, colunas e sub-níveis: QStandardItem *parentItem = model->invisibleRootItem(); const int iniLevel = 0; const int totLevels= 3; QString prevRows(""); QVector<QSize> vec_ColsRows; // colunas, linhas de cada nível vec_ColsRows.reserve( totLevels ); // quantidade-colunas, quantidade-linhas vec_ColsRows << QSize(3,10) << QSize(3,3) << QSize(3,2) ; populate_model ( parentItem, vec_ColsRows, iniLevel, prevRows); // Neste exemplo, // O "model" foi alimentado com linhas, colunas e sub-níveis: // E serão criadas 4 "views" (uma "tree", uma "table", uma "list" e uma "comboBox") // relacionadas ao mesmo "model"; // Cada "view" exibe os dados de uma determinada maneira; // 1- ==== a primeira "view" é uma "tree": QTreeView *tree = new QTreeView(splitter); tree->setModel(model); // habilita classificação na tree: tree->setSortingEnabled(true); // classifica tree->sortByColumn(0); // expande toda a árvore: tree->expandAll(); // força largura de todas as colunas // para exibição completa do texto dos seus itens for (col = 0; col < totCols; ++col) tree->resizeColumnToContents(col); // configura o header para permitir mudança na ordem de classificacão: QHeaderView * hdrTree = tree->header(); hdrTree->setClickable (true); hdrTree->setSortIndicator(0,Qt::AscendingOrder); hdrTree->setSortIndicatorShown(true); hdrTree->setMovable(true); // permite mover colunas do header // 2- ==== a segunda "view" é uma "table" QTableView *table = new QTableView(splitter); table->setModel(model); table->setAlternatingRowColors(true); // habilita classificação na table: table->setSortingEnabled(true); // classifica table->sortByColumn(0); // configura o header para permitir mudança na ordem de classificacão: QHeaderView * hdrTable = table->horizontalHeader(); hdrTable->setClickable (true); hdrTable->setSortIndicator(0,Qt::AscendingOrder); hdrTable->setSortIndicatorShown(true); hdrTable->setMovable(true); // permite mover colunas do header // 3- ==== a terceira view é uma "list": QListView *list = new QListView(splitter); list->setModel(model); // 4- ==== a quarta "view" é uma "comboBox" QComboBox *combo = new QComboBox; combo->setModel(model); // configura a "splitter" definindo a largura de cada "view" int width = 800; QList< int > cols; cols << int(width* 0.45) << int(width*0.45) << int(width*0.1); splitter->setSizes(cols); // layout para agrupar a "combo" e a "splitter": QGridLayout * glayMain = new QGridLayout; main_wg->setLayout( glayMain); glayMain->addWidget( combo, 0, 1); // linha 0, coluna 0; glayMain->setRowMinimumHeight(1, glayMain->verticalSpacing() * 4); // linha 1: linha de separação glayMain->addWidget( splitter, 2, 0, 1, 3 ); // linha 2, coluna 0, rowSpan 1, colSpan 3 main_wg->setWindowTitle("06_standard - 4 'views' usando o mesmo 'model' (StandardModel) - recursivo"); main_wg->resize(800,500); main_wg->show(); return app.exec(); }
ExtImageProps::ExtImageProps( QWidget* parent, ImageInfoRecord *info, PageItem *item, ScribusView *view ) : QDialog( parent ) { setModal(true); setWindowTitle( tr( "Extended Image Properties" ) ); setWindowIcon(QIcon(loadIcon ( "AppIcon.png" ))); ExtImagePropsLayout = new QVBoxLayout( this ); ExtImagePropsLayout->setMargin(6); ExtImagePropsLayout->setSpacing(6); viewWidget = view; currentItem = item; currentLayer = 0; originalInfo = *info; originalImageClip = item->imageClip.copy(); blendModes.clear(); blendModes.insert("norm", tr("Normal")); blendModes.insert("dark", tr("Darken")); blendModes.insert("lite", tr("Lighten")); blendModes.insert("hue ", tr("Hue")); blendModes.insert("sat ", tr("Saturation")); blendModes.insert("colr", tr("Color")); blendModes.insert("lum ", tr("Luminosity")); blendModes.insert("mul ", tr("Multiply")); blendModes.insert("scrn", tr("Screen")); blendModes.insert("diss", tr("Dissolve")); blendModes.insert("over", tr("Overlay")); blendModes.insert("hLit", tr("Hard Light")); blendModes.insert("sLit", tr("Soft Light")); blendModes.insert("diff", tr("Difference")); blendModes.insert("smud", tr("Exclusion")); blendModes.insert("div ", tr("Color Dodge")); blendModes.insert("idiv", tr("Color Burn")); blendModesRev.clear(); blendModesRev.insert( tr("Normal"), "norm"); blendModesRev.insert( tr("Darken"), "dark"); blendModesRev.insert( tr("Lighten"), "lite"); blendModesRev.insert( tr("Hue"), "hue "); blendModesRev.insert( tr("Saturation"), "sat "); blendModesRev.insert( tr("Color"), "colr"); blendModesRev.insert( tr("Luminosity"), "lum "); blendModesRev.insert( tr("Multiply"), "mul "); blendModesRev.insert( tr("Screen"), "scrn"); blendModesRev.insert( tr("Dissolve"), "diss"); blendModesRev.insert( tr("Overlay"), "over"); blendModesRev.insert( tr("Hard Light"), "hLit"); blendModesRev.insert( tr("Soft Light"), "sLit"); blendModesRev.insert( tr("Difference"), "diff"); blendModesRev.insert( tr("Exclusion"), "smud"); blendModesRev.insert( tr("Color Dodge"), "div "); blendModesRev.insert( tr("Color Burn"), "idiv"); propsTab = new QTabWidget( this ); QPalette palette; palette.setColor(backgroundRole(), Qt::white); if (info->layerInfo.count() != 0) { tab = new QWidget( propsTab ); tabLayout = new QVBoxLayout( tab ); tabLayout->setMargin(6); tabLayout->setSpacing(6); layout1 = new QHBoxLayout; layout1->setMargin(0); layout1->setSpacing(6); textLabel1 = new QLabel( tab ); textLabel1->setText( tr( "Blend Mode:" ) ); layout1->addWidget( textLabel1 ); blendMode = new ScComboBox( tab ); blendMode->clear(); blendMode->addItem( tr("Normal")); blendMode->addItem( tr("Darken")); blendMode->addItem( tr("Lighten")); blendMode->addItem( tr("Hue")); blendMode->addItem( tr("Saturation")); blendMode->addItem( tr("Color")); blendMode->addItem( tr("Luminosity")); blendMode->addItem( tr("Multiply")); blendMode->addItem( tr("Screen")); blendMode->addItem( tr("Dissolve")); blendMode->addItem( tr("Overlay")); blendMode->addItem( tr("Hard Light")); blendMode->addItem( tr("Soft Light")); blendMode->addItem( tr("Difference")); blendMode->addItem( tr("Exclusion")); blendMode->addItem( tr("Color Dodge")); blendMode->addItem( tr("Color Burn")); layout1->addWidget( blendMode ); textLabel2 = new QLabel( tab ); textLabel2->setText( tr( "Opacity:" ) ); layout1->addWidget( textLabel2 ); opacitySpinBox = new QSpinBox( tab ); opacitySpinBox->setMinimum(0); opacitySpinBox->setMaximum(100); opacitySpinBox->setSingleStep(10); opacitySpinBox->setSuffix( tr(" %")); layout1->addWidget( opacitySpinBox ); tabLayout->addLayout( layout1 ); layerTable = new QTableWidget(info->layerInfo.count(), 3, tab ); layerTable->setHorizontalHeaderItem(0, new QTableWidgetItem(QIcon(loadIcon("16/show-object.png")), "")); layerTable->setHorizontalHeaderItem(1, new QTableWidgetItem("")); layerTable->setHorizontalHeaderItem(2, new QTableWidgetItem( tr("Name"))); QHeaderView* headerH = layerTable->horizontalHeader(); headerH->setStretchLastSection(true); headerH->setMovable(false); headerH->setClickable(false); if (info->layerInfo.count() == 1) { layerTable->setColumnWidth(1, 40); layerTable->setColumnWidth(0, 24); } layerTable->setSortingEnabled(false); layerTable->setSelectionBehavior( QAbstractItemView::SelectRows ); QHeaderView *Header = layerTable->verticalHeader(); Header->setMovable(false); Header->setResizeMode(QHeaderView::Fixed); Header->hide(); FlagsSicht.clear(); int col2Width = 0; int col1Width = 0; if (info->layerInfo.count() != 0) { if ((info->isRequest) && (info->RequestProps.contains(0))) { opacitySpinBox->setValue(qRound(info->RequestProps[0].opacity / 255.0 * 100)); setCurrentComboItem(blendMode, blendModes[info->RequestProps[0].blend]); } else { opacitySpinBox->setValue(qRound(info->layerInfo[0].opacity / 255.0 * 100)); setCurrentComboItem(blendMode, blendModes[info->layerInfo[0].blend]); } opacitySpinBox->setEnabled(true); blendMode->setEnabled(true); QString tmp; QList<PSDLayer>::iterator it2; uint counter = 0; for (it2 = info->layerInfo.begin(); it2 != info->layerInfo.end(); ++it2) { QCheckBox *cp = new QCheckBox((*it2).layerName, this); cp->setPalette(palette); QPixmap pm; pm=QPixmap::fromImage((*it2).thumb); col1Width = qMax(col1Width, pm.width()); cp->setIcon(pm); FlagsSicht.append(cp); connect(cp, SIGNAL(clicked()), this, SLOT(changedLayer())); layerTable->setCellWidget(info->layerInfo.count()-counter-1, 0, cp); if ((info->isRequest) && (info->RequestProps.contains(counter))) cp->setChecked(info->RequestProps[counter].visible); else cp->setChecked(!((*it2).flags & 2)); if (!(*it2).thumb_mask.isNull()) { QCheckBox *cp2 = new QCheckBox((*it2).layerName, this); cp2->setPalette(palette); QPixmap pm2; pm2=QPixmap::fromImage((*it2).thumb_mask); col2Width = qMax(col2Width, pm2.width()); cp2->setIcon(pm2); connect(cp2, SIGNAL(clicked()), this, SLOT(changedLayer())); layerTable->setCellWidget(info->layerInfo.count()-counter-1, 1, cp2); if ((info->isRequest) && (info->RequestProps.contains(counter))) cp2->setChecked(info->RequestProps[counter].useMask); else cp2->setChecked(true); FlagsMask.append(cp2); } else FlagsMask.append(0); QTableWidgetItem *tW = new QTableWidgetItem((*it2).layerName); tW->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); layerTable->setItem(info->layerInfo.count()-counter-1, 2, tW); layerTable->setRowHeight(info->layerInfo.count()-counter-1, 40); counter++; } } tabLayout->addWidget( layerTable ); layerTable->setColumnWidth(1, 24 + col2Width); layerTable->setColumnWidth(0, 24 + col1Width); blendMode->setCurrentIndex(0); // headerH->setResizeMode(QHeaderView::Fixed); propsTab->addTab( tab, tr( "Layers" ) ); } tab_2 = new QWidget( propsTab ); tabLayout_2 = new QVBoxLayout( tab_2 ); tabLayout_2->setMargin(6); tabLayout_2->setSpacing(6); pathList = new QListWidget( tab_2 ); pathList->clear(); pathList->setIconSize(QSize(40, 40)); QMap<QString, FPointArray>::Iterator it; if (info->PDSpathData.count() != 0) { for (it = info->PDSpathData.begin(); it != info->PDSpathData.end(); ++it) { QImage pixm(40, 40, QImage::Format_ARGB32); ScPainter *p = new ScPainter(&pixm, 40, 40); p->clear(); p->translate(3.0, 3.0); if (it.key() == info->clipPath) { pixm.fill(Qt::green); p->clear(Qt::green); } else pixm.fill(Qt::white); FPointArray Path; Path.resize(0); Path = info->PDSpathData[it.key()].copy(); FPoint min = getMinClipF(&Path); Path.translate(-min.x(), -min.y()); FPoint max = Path.WidthHeight(); QMatrix mm; mm.scale(34.0 / qMax(max.x(), max.y()), 34.0 / qMax(max.x(), max.y())); Path.map(mm); p->setupPolygon(&Path); p->setPen(Qt::black); p->setBrush(Qt::white); p->setFillMode(0); p->setLineWidth(1.0); p->strokePath(); p->end(); delete p; QPixmap pm; pm=QPixmap::fromImage(pixm); new QListWidgetItem(QIcon(pm), it.key(), pathList); if (it.key() == info->usedPath) { pathList->setCurrentRow(pathList->count()-1); pathList->currentItem()->setSelected(true); } } } tabLayout_2->addWidget( pathList ); resetPath = new QPushButton( tr("Don't use any Path"), tab_2); tabLayout_2->addWidget( resetPath ); propsTab->addTab( tab_2, tr( "Paths" ) ); ExtImagePropsLayout->addWidget( propsTab ); layoutBottom = new QHBoxLayout; layoutBottom->setMargin(0); layoutBottom->setSpacing(6); livePreview = new QCheckBox( this ); livePreview->setText( tr( "Live Preview" ) ); livePreview->setChecked(true); doPreview = true; layoutBottom->addWidget( livePreview ); QSpacerItem* spacer = new QSpacerItem( 2, 2, QSizePolicy::Expanding, QSizePolicy::Minimum ); layoutBottom->addItem( spacer ); okButton = new QPushButton( CommonStrings::tr_OK, this ); layoutBottom->addWidget( okButton ); cancelButton = new QPushButton( CommonStrings::tr_Cancel, this ); cancelButton->setDefault( true ); layoutBottom->addWidget( cancelButton ); ExtImagePropsLayout->addLayout( layoutBottom ); resize(330, 320); connect(pathList, SIGNAL( itemClicked(QListWidgetItem*) ), this, SLOT( selPath(QListWidgetItem*) ) ); connect(resetPath, SIGNAL(clicked()), this, SLOT(noPath())); connect(livePreview, SIGNAL(clicked()), this, SLOT(changePreview())); connect(okButton, SIGNAL(clicked()), this, SLOT(leaveOK())); connect(cancelButton, SIGNAL(clicked()), this, SLOT(leaveCancel())); if (info->layerInfo.count() != 0) { connect(layerTable, SIGNAL(cellClicked(int, int)), this, SLOT(selLayer(int))); connect(opacitySpinBox, SIGNAL(valueChanged(int)), this, SLOT(changedLayer())); connect(blendMode, SIGNAL(activated(int)), this, SLOT(changedLayer())); }
int HeaderView::setClickable(lua_State * L) // ( bool clickable ) { QHeaderView* obj = QtObject<QHeaderView>::check( L, 1); obj->setClickable( Util::toBool( L, 2 ) ); return 0; }
// Constructor. qjackctlClientListView::qjackctlClientListView ( qjackctlConnectView *pConnectView, bool bReadable ) : QTreeWidget(pConnectView) { m_pConnectView = pConnectView; m_pAutoOpenTimer = 0; m_iAutoOpenTimeout = 0; m_pDragItem = NULL; m_pDragItem = NULL; m_pAliases = NULL; m_bRenameEnabled = false; QHeaderView *pHeader = QTreeWidget::header(); pHeader->setDefaultAlignment(Qt::AlignLeft); // pHeader->setDefaultSectionSize(120); #if QT_VERSION >= 0x050000 // pHeader->setSectionResizeMode(QHeaderView::Custom); pHeader->setSectionsMovable(false); pHeader->setSectionsClickable(true); #else // pHeader->setResizeMode(QHeaderView::Custom); pHeader->setMovable(false); pHeader->setClickable(true); #endif pHeader->setSortIndicatorShown(true); pHeader->setStretchLastSection(true); QTreeWidget::setRootIsDecorated(true); QTreeWidget::setUniformRowHeights(true); // QTreeWidget::setDragEnabled(true); QTreeWidget::setAcceptDrops(true); QTreeWidget::setDropIndicatorShown(true); QTreeWidget::setAutoScroll(true); QTreeWidget::setSelectionMode(QAbstractItemView::SingleSelection); QTreeWidget::setSizePolicy( QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); QTreeWidget::setSortingEnabled(true); QTreeWidget::setMinimumWidth(120); QTreeWidget::setColumnCount(1); QString sText; if (bReadable) sText = tr("Readable Clients / Output Ports"); else sText = tr("Writable Clients / Input Ports"); QTreeWidget::headerItem()->setText(0, sText); QTreeWidget::sortItems(0, Qt::AscendingOrder); QTreeWidget::setToolTip(sText); // Trap for help/tool-tips events. QTreeWidget::viewport()->installEventFilter(this); QObject::connect(QTreeWidget::itemDelegate(), SIGNAL(commitData(QWidget*)), SLOT(renamedSlot())); setAutoOpenTimeout(800); }