QCompleter *createCompleter() { PythonCompleterListView *lstView = new PythonCompleterListView(); lstView->setItemDelegateForColumn(0, new PythonCompleterDelegate()); QCompleter *completer = new QCompleter(); completer->setPopup(lstView); completer->setCompletionMode(QCompleter::PopupCompletion); completer->setCaseSensitivity(Qt::CaseSensitive); completer->setModelSorting(QCompleter::CaseSensitivelySortedModel); return completer; }
/*! Returns the popup used to display completions. \sa setPopup() */ QAbstractItemView *QCompleter::popup() const { Q_D(const QCompleter); #ifndef QT_NO_LISTVIEW if (!d->popup && completionMode() != QCompleter::InlineCompletion) { QListView *listView = new QListView; listView->setEditTriggers(QAbstractItemView::NoEditTriggers); listView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); listView->setSelectionBehavior(QAbstractItemView::SelectRows); listView->setSelectionMode(QAbstractItemView::SingleSelection); listView->setModelColumn(d->column); QCompleter *that = const_cast<QCompleter*>(this); that->setPopup(listView); } #endif // QT_NO_LISTVIEW return d->popup; }
DsWidget::DsWidget(QWidget* parent, KIPI::Interface* iface) : QWidget(parent), m_lastTip( QString() ), m_lastQueryUrl( QUrl() ), m_httpManager( new KIO::AccessManager(this) ), m_jsonManager( new KIO::AccessManager(this) ) { setObjectName("DsWidget"); QHBoxLayout* mainLayout = new QHBoxLayout(this); // ------------------------------------------------------------------- m_imgList = new KIPIPlugins::ImagesList(iface, this); m_imgList->setControlButtonsPlacement(KIPIPlugins::ImagesList::ControlButtonsBelow); m_imgList->setAllowRAW(true); m_imgList->loadImagesFromCurrentSelection(); m_imgList->listView()->setWhatsThis( i18n("This is the list of images to upload to Debian Screenshots.") ); QWidget* settingsBox = new QWidget(this); QVBoxLayout* settingsBoxLayout = new QVBoxLayout(settingsBox); // m_headerLabel = new QLabel(settingsBox); // m_headerLabel->setText(QString("<b><h2><a href='%1'>" // "<font color=\"#BF1238\">Debian Screenshots</font>" // "</a></h2></b>").arg(KIPIDebianScreenshotsPlugin::debshotsUrl)); m_headerLabel = new KClickableImageLabel(settingsBox); QPixmap sdnLogoPixmap(":/kipi_debianscreenshots/sdnlogo.png"); m_headerLabel->setPixmap(sdnLogoPixmap); m_headerLabel->setUrl(KIPIDebianScreenshotsPlugin::debshotsUrl); m_headerLabel->setWhatsThis( i18n("This is a clickable link to open the Debian Screenshots home page in a web browser.") ); m_headerLabel->setOpenExternalLinks(true); m_headerLabel->setFocusPolicy(Qt::NoFocus); QGroupBox* pkgGroupBox = new QGroupBox(settingsBox); pkgGroupBox->setTitle(i18n("Package")); pkgGroupBox->setWhatsThis(i18n("This is the Debian Screenshots package to which selected photos will be uploaded.")); QGridLayout* sdnLayout = new QGridLayout(pkgGroupBox); QLabel* pkgLabel = new QLabel(i18n("Package:"), pkgGroupBox); m_pkgLineEdit = new KLineEdit(pkgGroupBox); QCompleter* pkgCompleter = new QCompleter(this); pkgCompleter->setCompletionMode(QCompleter::PopupCompletion); pkgCompleter->setCaseSensitivity(Qt::CaseInsensitive); m_pkgLineEdit->setCompleter(pkgCompleter); QListView* listView = new QListView; pkgCompleter->setPopup(listView); listView->setItemDelegateForColumn(0, new PackageDelegate); connect(m_pkgLineEdit, SIGNAL(textEdited(QString)), this, SLOT(slotCompletePackageName(QString))); connect(m_httpManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(slotCompletePackageNameFinished(QNetworkReply*))); connect(pkgCompleter, SIGNAL(activated(QString)), this, SLOT(slotFindVersionsForPackage(QString))); connect(m_jsonManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(slotFindVersionsForPackageFinished(QNetworkReply*))); QLabel* versionLabel = new QLabel(i18n("Software version:"), pkgGroupBox); m_versionsComboBox = new KComboBox(pkgGroupBox); m_versionsComboBox->setEditable(false); m_versionsComboBox->setEnabled(false); // Disable until we have a package name m_versionsComboBox->setMinimumContentsLength(40); connect(m_versionsComboBox, SIGNAL(activated(int)), this, SLOT(slotEnableUpload())); QLabel* descriptionLabel = new QLabel(i18n("Screenshot description:"), pkgGroupBox); m_descriptionLineEdit = new KLineEdit(pkgGroupBox); m_descriptionLineEdit->setMaxLength(40); // 40 is taken from screenshots.debian.net/upload page source m_descriptionLineEdit->setEnabled(false); sdnLayout->addWidget(pkgLabel, 1, 0, 1, 1); sdnLayout->addWidget(m_pkgLineEdit, 1, 1, 1, 4); sdnLayout->addWidget(versionLabel, 2, 0, 1, 1); sdnLayout->addWidget(m_versionsComboBox, 2, 1, 1, 4); sdnLayout->addWidget(descriptionLabel, 3, 0, 1, 1); sdnLayout->addWidget(m_descriptionLineEdit, 3, 1, 1, 4); m_progressBar = new QProgressBar(settingsBox); m_progressBar->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); m_progressBar->hide(); settingsBoxLayout->addWidget(m_headerLabel); settingsBoxLayout->addWidget(pkgGroupBox); settingsBoxLayout->addWidget(m_progressBar); mainLayout->addWidget(m_imgList); mainLayout->addWidget(settingsBox); mainLayout->setSpacing(KDialog::spacingHint()); mainLayout->setMargin(0); }