本文整理汇总了C++中qWarning函数的典型用法代码示例。如果您正苦于以下问题:C++ qWarning函数的具体用法?C++ qWarning怎么用?C++ qWarning使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了qWarning函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: qWarning
void ChooseDialog::ok()
{
qWarning( "ChooseDialog::ok(): Not implemented yet" );
}
示例2: runRcc
int runRcc(int argc, char *argv[])
{
QString outFilename;
bool helpRequested = false;
bool list = false;
bool projectRequested = false;
QStringList filenamesIn;
QStringList args = qCmdLineArgs(argc, argv);
RCCResourceLibrary library;
//parse options
QString errorMsg;
for (int i = 1; i < args.count() && errorMsg.isEmpty(); i++) {
if (args[i].isEmpty())
continue;
if (args[i][0] == QLatin1Char('-')) { // option
QString opt = args[i];
if (opt == QLatin1String("-o")) {
if (!(i < argc-1)) {
errorMsg = QLatin1String("Missing output name");
break;
}
outFilename = args[++i];
} else if (opt == QLatin1String("-name")) {
if (!(i < argc-1)) {
errorMsg = QLatin1String("Missing target name");
break;
}
library.setInitName(args[++i]);
} else if (opt == QLatin1String("-root")) {
if (!(i < argc-1)) {
errorMsg = QLatin1String("Missing root path");
break;
}
library.setResourceRoot(QDir::cleanPath(args[++i]));
if (library.resourceRoot().isEmpty()
|| library.resourceRoot().at(0) != QLatin1Char('/'))
errorMsg = QLatin1String("Root must start with a /");
} else if (opt == QLatin1String("-compress")) {
if (!(i < argc-1)) {
errorMsg = QLatin1String("Missing compression level");
break;
}
library.setCompressLevel(args[++i].toInt());
} else if (opt == QLatin1String("-threshold")) {
if (!(i < argc-1)) {
errorMsg = QLatin1String("Missing compression threshold");
break;
}
library.setCompressThreshold(args[++i].toInt());
} else if (opt == QLatin1String("-binary")) {
library.setFormat(RCCResourceLibrary::Binary);
} else if (opt == QLatin1String("-namespace")) {
library.setUseNameSpace(!library.useNameSpace());
} else if (opt == QLatin1String("-verbose")) {
library.setVerbose(true);
} else if (opt == QLatin1String("-list")) {
list = true;
} else if (opt == QLatin1String("-version") || opt == QLatin1String("-v")) {
fprintf(stderr, "Qt Resource Compiler version %s\n", QT_VERSION_STR);
return 1;
} else if (opt == QLatin1String("-help") || opt == QLatin1String("-h")) {
helpRequested = true;
} else if (opt == QLatin1String("-no-compress")) {
library.setCompressLevel(-2);
} else if (opt == QLatin1String("-project")) {
projectRequested = true;
} else {
errorMsg = QString::fromLatin1("Unknown option: '%1'").arg(args[i]);
}
} else {
if (!QFile::exists(args[i])) {
qWarning("%s: File does not exist '%s'",
qPrintable(args[0]), qPrintable(args[i]));
return 1;
}
filenamesIn.append(args[i]);
}
}
if (projectRequested && !helpRequested) {
return createProject(outFilename);
}
if (!filenamesIn.size() || !errorMsg.isEmpty() || helpRequested) {
showHelp(args[0], errorMsg);
return 1;
}
QFile errorDevice;
errorDevice.open(stderr, QIODevice::WriteOnly|QIODevice::Text);
if (library.verbose())
errorDevice.write("Qt resource compiler\n");
library.setInputFiles(filenamesIn);
if (!library.readFiles(list, errorDevice))
return 1;
//.........这里部分代码省略.........
示例3: switch
//.........这里部分代码省略.........
if( m_notes[event.key()] != NULL )
{
// do actual note off and remove internal reference to NotePlayHandle (which itself will
// be deleted later automatically)
Engine::mixer()->requestChangeInModel();
m_notes[event.key()]->noteOff( offset );
if (isSustainPedalPressed() &&
m_notes[event.key()]->origin() ==
m_notes[event.key()]->OriginMidiInput)
{
m_sustainedNotes << m_notes[event.key()];
}
m_notes[event.key()] = NULL;
Engine::mixer()->doneChangeInModel();
}
eventHandled = true;
break;
case MidiKeyPressure:
if( m_notes[event.key()] != NULL )
{
// setVolume() calls processOutEvent() with MidiKeyPressure so the
// attached instrument will receive the event as well
m_notes[event.key()]->setVolume( event.volume( midiPort()->baseVelocity() ) );
}
eventHandled = true;
break;
case MidiPitchBend:
// updatePitch() is connected to m_pitchModel::dataChanged() which will send out
// MidiPitchBend events
m_pitchModel.setValue( m_pitchModel.minValue() + event.pitchBend() * m_pitchModel.range() / MidiMaxPitchBend );
break;
case MidiControlChange:
if( event.controllerNumber() == MidiControllerSustain )
{
if( event.controllerValue() > MidiMaxControllerValue/2 )
{
m_sustainPedalPressed = true;
}
else if (isSustainPedalPressed())
{
for (NotePlayHandle* nph : m_sustainedNotes)
{
if (nph && nph->isReleased())
{
if( nph->origin() ==
nph->OriginMidiInput)
{
nph->setLength(
MidiTime( static_cast<f_cnt_t>(
nph->totalFramesPlayed() /
Engine::framesPerTick() ) ) );
midiNoteOff( *nph );
}
}
}
m_sustainedNotes.clear();
m_sustainPedalPressed = false;
}
}
if( event.controllerNumber() == MidiControllerAllSoundOff ||
event.controllerNumber() == MidiControllerAllNotesOff ||
event.controllerNumber() == MidiControllerOmniOn ||
event.controllerNumber() == MidiControllerOmniOff ||
event.controllerNumber() == MidiControllerMonoOn ||
event.controllerNumber() == MidiControllerPolyOn )
{
silenceAllNotes();
}
break;
case MidiMetaEvent:
// handle special cases such as note panning
switch( event.metaEvent() )
{
case MidiNotePanning:
if( m_notes[event.key()] != NULL )
{
eventHandled = true;
m_notes[event.key()]->setPanning( event.panning() );
}
break;
default:
qWarning( "InstrumentTrack: unhandled MIDI meta event: %i", event.metaEvent() );
break;
}
break;
default:
break;
}
if( eventHandled == false && instrument()->handleMidiEvent( event, time, offset ) == false )
{
qWarning( "InstrumentTrack: unhandled MIDI event %d", event.type() );
}
}
示例4: qWarning
void DBusConnection::dbusError(const QDBusError &error)
{
qWarning() << "Accessibility encountered a DBus error:" << error;
}
示例5: Q_D
bool
QFile::copy(const QString &newName)
{
Q_D(QFile);
if (d->fileName.isEmpty()) {
qWarning("QFile::copy: Empty or null file name");
return false;
}
if (QFile(newName).exists()) {
// ### Race condition. If a file is moved in after this, it /will/ be
// overwritten. On Unix, the proper solution is to use hardlinks:
// return ::link(old, new) && ::remove(old); See also rename().
d->setError(QFile::CopyError, tr("Destination file exists"));
return false;
}
unsetError();
close();
if(error() == QFile::NoError) {
if (d->engine()->copy(newName)) {
unsetError();
return true;
} else {
bool error = false;
if(!open(QFile::ReadOnly)) {
error = true;
d->setError(QFile::CopyError, tr("Cannot open %1 for input").arg(d->fileName));
} else {
QString fileTemplate = QLatin1String("%1/qt_temp.XXXXXX");
#ifdef QT_NO_TEMPORARYFILE
QFile out(fileTemplate.arg(QFileInfo(newName).path()));
if (!out.open(QIODevice::ReadWrite))
error = true;
#else
QTemporaryFile out(fileTemplate.arg(QFileInfo(newName).path()));
if (!out.open()) {
out.setFileTemplate(fileTemplate.arg(QDir::tempPath()));
if (!out.open())
error = true;
}
#endif
if (error) {
out.close();
close();
d->setError(QFile::CopyError, tr("Cannot open for output"));
} else {
char block[4096];
qint64 totalRead = 0;
while(!atEnd()) {
qint64 in = read(block, sizeof(block));
if (in <= 0)
break;
totalRead += in;
if(in != out.write(block, in)) {
close();
d->setError(QFile::CopyError, tr("Failure to write block"));
error = true;
break;
}
}
if (totalRead != size()) {
// Unable to read from the source. The error string is
// already set from read().
error = true;
}
if (!error && !out.rename(newName)) {
error = true;
close();
d->setError(QFile::CopyError, tr("Cannot create %1 for output").arg(newName));
}
#ifdef QT_NO_TEMPORARYFILE
if (error)
out.remove();
#else
if (!error)
out.setAutoRemove(false);
#endif
}
}
if(!error) {
QFile::setPermissions(newName, permissions());
close();
unsetError();
return true;
}
}
}
return false;
}
示例6: macQueryInternal
QList<QNetworkProxy> macQueryInternal(const QNetworkProxyQuery &query)
{
QList<QNetworkProxy> result;
// obtain a dictionary to the proxy settings:
CFDictionaryRef dict = SCDynamicStoreCopyProxies(NULL);
if (!dict) {
qWarning("QNetworkProxyFactory::systemProxyForQuery: SCDynamicStoreCopyProxies returned NULL");
return result; // failed
}
if (isHostExcluded(dict, query.peerHostName())) {
CFRelease(dict);
return result; // no proxy for this host
}
// is there a PAC enabled? If so, use it first.
CFNumberRef pacEnabled;
if ((pacEnabled = (CFNumberRef)CFDictionaryGetValue(dict, kSCPropNetProxiesProxyAutoConfigEnable))) {
int enabled;
if (CFNumberGetValue(pacEnabled, kCFNumberIntType, &enabled) && enabled) {
// PAC is enabled
CFStringRef pacUrl =
(CFStringRef)CFDictionaryGetValue(dict, kSCPropNetProxiesProxyAutoConfigURLString);
QString url = QCFString::toQString(pacUrl);
// ### TODO: Use PAC somehow
}
}
// no PAC, decide which proxy we're looking for based on the query
bool isHttps = false;
QString protocol = query.protocolTag().toLower();
// try the protocol-specific proxy
QNetworkProxy protocolSpecificProxy;
if (protocol == QLatin1String("ftp")) {
protocolSpecificProxy =
proxyFromDictionary(dict, QNetworkProxy::FtpCachingProxy,
kSCPropNetProxiesFTPEnable,
kSCPropNetProxiesFTPProxy,
kSCPropNetProxiesFTPPort);
} else if (protocol == QLatin1String("http")) {
protocolSpecificProxy =
proxyFromDictionary(dict, QNetworkProxy::HttpProxy,
kSCPropNetProxiesHTTPEnable,
kSCPropNetProxiesHTTPProxy,
kSCPropNetProxiesHTTPPort);
} else if (protocol == QLatin1String("https")) {
isHttps = true;
protocolSpecificProxy =
proxyFromDictionary(dict, QNetworkProxy::HttpProxy,
kSCPropNetProxiesHTTPSEnable,
kSCPropNetProxiesHTTPSProxy,
kSCPropNetProxiesHTTPSPort);
}
if (protocolSpecificProxy.type() != QNetworkProxy::DefaultProxy)
result << protocolSpecificProxy;
// let's add SOCKSv5 if present too
QNetworkProxy socks5 = proxyFromDictionary(dict, QNetworkProxy::Socks5Proxy,
kSCPropNetProxiesSOCKSEnable,
kSCPropNetProxiesSOCKSProxy,
kSCPropNetProxiesSOCKSPort);
if (socks5.type() != QNetworkProxy::DefaultProxy)
result << socks5;
// let's add the HTTPS proxy if present (and if we haven't added
// yet)
if (!isHttps) {
QNetworkProxy https = proxyFromDictionary(dict, QNetworkProxy::HttpProxy,
kSCPropNetProxiesHTTPSEnable,
kSCPropNetProxiesHTTPSProxy,
kSCPropNetProxiesHTTPSPort);
if (https.type() != QNetworkProxy::DefaultProxy && https != protocolSpecificProxy)
result << https;
}
CFRelease(dict);
return result;
}
示例7: html
void
TrackDashboard::onArtistGotInfo( WsReply* reply )
{
ui.spinner->hide();
ui.similarArtists->clear();
QString css =
"<style>"
"body{padding:0;margin:0;color:#bbb;}"
"#stats{color:#444444;margin:0;line-height:1.3;font-weight:bold}"
"#extended{display:none;}"
"p{line-height:1.6em}"
"h1 a{color:#fff;margin:0 0 2px 0}"
"h1 a:hover{text-decoration:underline}"
"a{color:#00aeef;text-decoration:none}"
"a:hover{text-decoration:underline}"
"body{font-size:11px}"
"h1{font-size:18px}"
#ifdef Q_WS_MAC
"body{font-family:Lucida Grande}"
#endif
"</style>";
QTextStream html( &css, QIODevice::Append );
try
{
WsDomElement e = reply->lfm()["artist"];
QString name = e["name"].text();
QString url = e["url"].text();
uint plays = e["stats"]["playcount"].text().toUInt();
uint listeners = e["stats"]["listeners"].text().toUInt();
QString content = e["bio"]["content"].text();
QString editmessage = tr("Edit it too!");
html << "<h1><a href=\"" << url << "\">" << name << "</a></h1>"
<< "<p id=stats>" << tr( "%L1 listeners" ).arg( listeners ) << "<br>"
<< tr( "%L1 plays" ).arg( plays );
if (content.isEmpty())
{
// this should be all one tr, but meh.
html << "<p>" << tr("We don't have a description for this artist yet.")
<< "<p><a href='" << url << "/+wiki/edit'>"
<< tr("Why not write one?") << "</a>";
}
else
{
QStringList bio = formatBio( content );
html << "<span id=content>" << bio.at( 0 ) << "</span>"
<< "<p id=editme style='margin-top:0'>" << tr("This information was created by users like you! ")
<< "<a href=\"" << url << "/wiki/edit" << "\">" << editmessage << "</a>"
<< "<button onclick=\"toggleMoreInfo();\">More..</button>";
}
foreach (WsDomElement artist, e["similar"].children( "artist" ))
ui.similarArtists->addItem( artist["name"].text() );
}
catch (std::runtime_error& e)
{
qWarning() << e.what();
html << "<h1>" << m_track.artist() << "</h1>"
<< "<p>" << tr( "Unable to contact Last.fm.<br>Your scrobbles are being cached." );
}
ui.bio->setHtml( *html.string() );
resizeEvent( 0 );
ui.info->show();
}
示例8: deleteStaleLock
static KLockFile::LockResult deleteStaleLock(const QString &lockFile, KDE_struct_stat &st_buf, bool &linkCountSupport, const KComponentData &componentData)
{
// This is dangerous, we could be deleting a new lock instead of
// the old stale one, let's be very careful
// Create temp file
KTemporaryFile *ktmpFile = new KTemporaryFile(componentData);
ktmpFile->setFileTemplate(lockFile);
if (!ktmpFile->open())
return KLockFile::LockError;
QByteArray lckFile = QFile::encodeName(lockFile);
QByteArray tmpFile = QFile::encodeName(ktmpFile->fileName());
delete ktmpFile;
// link to lock file
if (::link(lckFile, tmpFile) != 0)
return KLockFile::LockFail; // Try again later
// check if link count increased with exactly one
// and if the lock file still matches
KDE_struct_stat st_buf1;
KDE_struct_stat st_buf2;
memcpy(&st_buf1, &st_buf, sizeof(KDE_struct_stat));
st_buf1.st_nlink++;
if ((KDE_lstat(tmpFile, &st_buf2) == 0) && st_buf1 == st_buf2)
{
if ((KDE_lstat(lckFile, &st_buf2) == 0) && st_buf1 == st_buf2)
{
// - - if yes, delete lock file, delete temp file, retry lock
qWarning("WARNING: deleting stale lockfile %s", lckFile.data());
::unlink(lckFile);
::unlink(tmpFile);
return KLockFile::LockOK;
}
}
// SMBFS supports hardlinks by copying the file, as a result the above test will always fail
if (linkCountSupport)
{
linkCountSupport = testLinkCountSupport(tmpFile);
}
if (!linkCountSupport)
{
// Without support for link counts we will have a little race condition
qWarning("WARNING: deleting stale lockfile %s", lckFile.data());
::unlink(tmpFile);
if (::unlink(lckFile) < 0) {
qWarning("WARNING: Problem deleting stale lockfile %s: %s", lckFile.data(),
strerror(errno));
return KLockFile::LockFail;
}
return KLockFile::LockOK;
}
// Failed to delete stale lock file
qWarning("WARNING: Problem deleting stale lockfile %s", lckFile.data());
::unlink(tmpFile);
return KLockFile::LockFail;
}
示例9: chooseVisual
bool QGLContext::chooseContext( const QGLContext* shareContext )
{
Display* disp = d->paintDevice->x11Display();
vi = chooseVisual();
if ( !vi )
return FALSE;
if ( deviceIsPixmap() &&
(((XVisualInfo*)vi)->depth != d->paintDevice->x11Depth() ||
((XVisualInfo*)vi)->screen != d->paintDevice->x11Screen()) )
{
XFree( vi );
XVisualInfo appVisInfo;
memset( &appVisInfo, 0, sizeof(XVisualInfo) );
appVisInfo.visualid = XVisualIDFromVisual( (Visual*)d->paintDevice->x11Visual() );
appVisInfo.screen = d->paintDevice->x11Screen();
int nvis;
vi = XGetVisualInfo( disp, VisualIDMask | VisualScreenMask, &appVisInfo, &nvis );
if ( !vi )
return FALSE;
int useGL;
glXGetConfig( disp, (XVisualInfo*)vi, GLX_USE_GL, &useGL );
if ( !useGL )
return FALSE; //# Chickening out already...
}
int res;
glXGetConfig( disp, (XVisualInfo*)vi, GLX_LEVEL, &res );
glFormat.setPlane( res );
glXGetConfig( disp, (XVisualInfo*)vi, GLX_DOUBLEBUFFER, &res );
glFormat.setDoubleBuffer( res );
glXGetConfig( disp, (XVisualInfo*)vi, GLX_DEPTH_SIZE, &res );
glFormat.setDepth( res );
glXGetConfig( disp, (XVisualInfo*)vi, GLX_RGBA, &res );
glFormat.setRgba( res );
glXGetConfig( disp, (XVisualInfo*)vi, GLX_ALPHA_SIZE, &res );
glFormat.setAlpha( res );
glXGetConfig( disp, (XVisualInfo*)vi, GLX_ACCUM_RED_SIZE, &res );
glFormat.setAccum( res );
glXGetConfig( disp, (XVisualInfo*)vi, GLX_STENCIL_SIZE, &res );
glFormat.setStencil( res );
glXGetConfig( disp, (XVisualInfo*)vi, GLX_STEREO, &res );
glFormat.setStereo( res );
Bool direct = format().directRendering() ? True : False;
if ( shareContext &&
( !shareContext->isValid() || !shareContext->cx ) ) {
#if defined(QT_CHECK_NULL)
qWarning("QGLContext::chooseContext(): Cannot share with invalid context");
#endif
shareContext = 0;
}
// 1. Sharing between rgba and color-index will give wrong colors.
// 2. Contexts cannot be shared btw. direct/non-direct renderers.
// 3. Pixmaps cannot share contexts that are set up for direct rendering.
if ( shareContext && (format().rgba() != shareContext->format().rgba() ||
(deviceIsPixmap() &&
glXIsDirect( disp, (GLXContext)shareContext->cx ))))
shareContext = 0;
cx = 0;
if ( shareContext ) {
cx = glXCreateContext( disp, (XVisualInfo *)vi,
(GLXContext)shareContext->cx, direct );
if ( cx )
d->sharing = TRUE;
}
if ( !cx )
cx = glXCreateContext( disp, (XVisualInfo *)vi, None, direct );
if ( !cx )
return FALSE;
glFormat.setDirectRendering( glXIsDirect( disp, (GLXContext)cx ) );
if ( deviceIsPixmap() ) {
#if defined(GLX_MESA_pixmap_colormap) && defined(QGL_USE_MESA_EXT)
gpm = glXCreateGLXPixmapMESA( disp, (XVisualInfo *)vi,
d->paintDevice->handle(),
choose_cmap( disp, (XVisualInfo *)vi ) );
#else
gpm = (Q_UINT32)glXCreateGLXPixmap( disp, (XVisualInfo *)vi,
d->paintDevice->handle() );
#endif
if ( !gpm )
return FALSE;
}
return TRUE;
}
示例10: qWarning
/**
* Install a package given from a QIODevice
*/
KissReturn KissArchive::install(QIODevice* in)
{
QStringList files;
QStringList dirs;
// Reads the file's "magic" to make sure we have a Kiss Archive
char magic[2];
in->read(magic, 2);
if(magic[0] != kissMagic[0] || magic[1] != kissMagic[1]) {
qWarning() << "Bad Magic";
return KissReturn(true, QObject::tr("Bad Magic. Probably not a KISS Archive"));
}
// Read platforms, halt if current platform not detected
unsigned numPlatforms = 0;
in->read((char*)&numPlatforms, sizeof(unsigned));
bool match = false;
for(unsigned i = 0; i < numPlatforms; ++i) {
if(QString(in->read(3).data()) == OS_NAME) {
match = true;
}
}
if(!match) {
qWarning() << "Incorrect OS";
return KissReturn(true, QObject::tr("This OS is not supported by the archive"));
}
// Checks the Kiss Archive Specification version, so we know how to extract
unsigned version = 0;
in->read((char*)&version, sizeof(unsigned));
if(kissVersion != version) {
return KissReturn(true, QObject::tr("Version mismatch. Expected: ") + kissVersion + QObject::tr(", got ") + version);
}
// Reads archive name and internal version
unsigned nameSize = 0;
in->read((char*)&nameSize, sizeof(unsigned));
QString name(in->read(nameSize).data());
unsigned pVersion = 0;
in->read((char*)&pVersion, sizeof(unsigned));
if(KissArchive::version(name) >= pVersion) {
qWarning() << "Higher version already installed. Skipping.";
return KissReturn(true, QObject::tr("Higher version of same archive already installed"));
} else if(KissArchive::version(name) < pVersion) {
uninstall(name);
}
// Recursively extract files and dirs
unsigned numFiles = 0;
in->read((char*)&numFiles, sizeof(unsigned));
for(unsigned i = 0; i < numFiles; ++i) {
unsigned strLength = 0;
in->read((char*)&strLength, sizeof(unsigned));
QString str = QString(in->read(strLength).data());
files << str;
unsigned dataLength = 0;
in->read((char*)&dataLength, sizeof(unsigned));
const QByteArray& data = qUncompress(in->read(dataLength));
if(str.isEmpty()) continue;
QFile f(str);
const QString& filePath = QFileInfo(str).path();
QDir dir;
if(!dir.exists(filePath)) {
dir.mkpath(filePath);
dirs.prepend(filePath);
}
if(!f.open(QIODevice::WriteOnly)) {
qWarning() << "Unable to open" << str << "for writing.";
}
f.write(data);
}
qWarning() << files;
QSettings installed(KISS_ARCHIVE_FILE, QSettings::IniFormat);
installed.setValue(name + INSTALLED_VERSION_STRING, pVersion);
installed.setValue(name + INSTALLED_FILES_STRING, files);
installed.setValue(name + INSTALLED_DIRS_STRING, dirs);
installed.sync();
return KissReturn(false);
}
示例11: QWidget
Widget::Widget() : QWidget(),
m_label(new QLabel)
{
setLayout(new QVBoxLayout);
layout()->addWidget(m_label);
setWindowFlags(Qt::WindowStaysOnTopHint | Qt::X11BypassWindowManagerHint | Qt::WindowDoesNotAcceptFocus | Qt::Tool);
setAttribute(Qt::WA_TranslucentBackground);
m_label->setTextInteractionFlags(Qt::TextSelectableByKeyboard);
m_label->setTextFormat(Qt::PlainText);
m_label->setWordWrap(true);
layout()->setMargin(0);
setMaximumWidth(1000);
setMaximumHeight(1000);
setMinimumWidth(500);
setMinimumHeight(128);
m_label->setAlignment(Qt::AlignLeft | Qt::AlignTop);
m_label->setMargin(5);
QFont font;
font.setPixelSize(15);
setFont(font);
//connect(qApp->clipboard(), &QClipboard::dataChanged, this, &Widget::onClipboardUpdated);
connect(qApp->clipboard(), &QClipboard::dataChanged, &m_updateTimer, [=]() { m_updateTimer.start(10); });
connect(&m_updateTimer, &QTimer::timeout, this, &Widget::onClipboardUpdated);
m_updateTimer.setSingleShot(true);
m_timer.setSingleShot(true);
connect(&m_timer, &QTimer::timeout, this, &QWidget::hide);
QString stylesheet(
"QLabel {\n"
" border: 3px solid white;\n"
" background-color: rgba(0, 0, 0, 128);\n"
" selection-color: black;\n"
" selection-background-color: white;\n"
"}\n"
);
const QString configLocation = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation);
QDir configDir(configLocation);
if (!configDir.exists()) {
configDir.mkpath(configLocation);
}
QString stylePath = configDir.absoluteFilePath("pastenotifier.qss");
QFile styleFile(stylePath);
if (styleFile.exists()) {
if (styleFile.open(QIODevice::ReadOnly)) {
qDebug() << "Loading stylesheet" << stylePath;
stylesheet = QString::fromLocal8Bit(styleFile.readAll());
} else {
qWarning() << "Unable to open qss file:" << stylePath << styleFile.errorString();
}
} else {
if (styleFile.open(QIODevice::WriteOnly)) {
styleFile.write(stylesheet.toUtf8());
} else {
qWarning() << "Unable to open qss file for writing:" << stylePath << styleFile.errorString();
}
}
QAction *showAction = new QAction(this);
connect(showAction, &QAction::triggered, [=](){
setWindowOpacity(1);
show();
m_timer.start(5000);
});
showAction->setObjectName("showpastenotifier");
KGlobalAccel::setGlobalShortcut(showAction, QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_V));
setStyleSheet(stylesheet);
onClipboardUpdated();
}
示例12: qWarning
bool QtLockedFile::lock(LockMode mode, bool block)
{
if (!isOpen()) {
qWarning("QtLockedFile::lock(): file is not opened");
return false;
}
if (mode == m_lock_mode)
return true;
if (m_lock_mode != 0)
unlock();
if (m_semaphore_hnd == 0) {
QFileInfo fi(*this);
QString sem_name = QString::fromLatin1(SEMAPHORE_PREFIX)
+ fi.absoluteFilePath().toLower();
m_semaphore_hnd = CreateSemaphoreW(0, SEMAPHORE_MAX, SEMAPHORE_MAX,
(TCHAR*)sem_name.utf16());
if (m_semaphore_hnd == 0) {
qWarning("QtLockedFile::lock(): CreateSemaphore: %s",
errorCodeToString(GetLastError()).toLatin1().constData());
return false;
}
}
bool gotMutex = false;
int decrement;
if (mode == ReadLock) {
decrement = 1;
} else {
decrement = SEMAPHORE_MAX;
if (m_mutex_hnd == 0) {
QFileInfo fi(*this);
QString mut_name = QString::fromLatin1(MUTEX_PREFIX)
+ fi.absoluteFilePath().toLower();
m_mutex_hnd = CreateMutexW(NULL, FALSE, (TCHAR*)mut_name.utf16());
if (m_mutex_hnd == 0) {
qWarning("QtLockedFile::lock(): CreateMutex: %s",
errorCodeToString(GetLastError()).toLatin1().constData());
return false;
}
}
DWORD res = WaitForSingleObject(m_mutex_hnd, block ? INFINITE : 0);
if (res == WAIT_TIMEOUT)
return false;
if (res == WAIT_FAILED) {
qWarning("QtLockedFile::lock(): WaitForSingleObject (mutex): %s",
errorCodeToString(GetLastError()).toLatin1().constData());
return false;
}
gotMutex = true;
}
for (int i = 0; i < decrement; ++i) {
DWORD res = WaitForSingleObject(m_semaphore_hnd, block ? INFINITE : 0);
if (res == WAIT_TIMEOUT) {
if (i) {
// A failed nonblocking rw locking. Undo changes to semaphore.
if (ReleaseSemaphore(m_semaphore_hnd, i, NULL) == 0) {
qWarning("QtLockedFile::unlock(): ReleaseSemaphore: %s",
errorCodeToString(GetLastError()).toLatin1().constData());
// Fall through
}
}
if (gotMutex)
ReleaseMutex(m_mutex_hnd);
return false;
}
if (res != WAIT_OBJECT_0) {
if (gotMutex)
ReleaseMutex(m_mutex_hnd);
qWarning("QtLockedFile::lock(): WaitForSingleObject (semaphore): %s",
errorCodeToString(GetLastError()).toLatin1().constData());
return false;
}
}
m_lock_mode = mode;
if (gotMutex)
ReleaseMutex(m_mutex_hnd);
return true;
}
示例13: parse
static void parse( MetaTranslator *tor, const char *initialContext,
const char *defaultContext )
{
QMap<QCString, QCString> qualifiedContexts;
QStringList namespaces;
QCString context;
QCString text;
QCString com;
QCString functionContext = initialContext;
QCString prefix;
bool utf8 = FALSE;
bool missing_Q_OBJECT = FALSE;
yyTok = getToken();
while ( yyTok != Tok_Eof ) {
switch ( yyTok ) {
case Tok_class:
/*
Partial support for inlined functions.
*/
yyTok = getToken();
if ( yyBraceDepth == (int) namespaces.count() &&
yyParenDepth == 0 ) {
do {
/*
This code should execute only once, but we play
safe with impure definitions such as
'class Q_EXPORT QMessageBox', in which case
'QMessageBox' is the class name, not 'Q_EXPORT'.
*/
functionContext = yyIdent;
yyTok = getToken();
} while ( yyTok == Tok_Ident );
while ( yyTok == Tok_Gulbrandsen ) {
yyTok = getToken();
functionContext += "::";
functionContext += yyIdent;
yyTok = getToken();
}
if ( yyTok == Tok_Colon ) {
missing_Q_OBJECT = TRUE;
} else {
functionContext = defaultContext;
}
}
break;
case Tok_namespace:
yyTok = getToken();
if ( yyTok == Tok_Ident ) {
QCString ns = yyIdent;
yyTok = getToken();
if ( yyTok == Tok_LeftBrace &&
yyBraceDepth == (int) namespaces.count() + 1 )
namespaces.append( QString(ns) );
}
break;
case Tok_tr:
case Tok_trUtf8:
utf8 = ( yyTok == Tok_trUtf8 );
yyTok = getToken();
if ( match(Tok_LeftParen) && matchString(&text) ) {
com = "";
if ( match(Tok_RightParen) || (match(Tok_Comma) &&
matchString(&com) && match(Tok_RightParen)) ) {
if ( prefix.isNull() ) {
context = functionContext;
if ( !namespaces.isEmpty() )
context.prepend( (namespaces.join(QString("::")) +
QString("::")).latin1() );
} else {
context = prefix;
}
prefix = (const char *) 0;
if ( qualifiedContexts.contains(context) )
context = qualifiedContexts[context];
tor->insert( MetaTranslatorMessage(context, text, com,
QString::null, utf8) );
if ( lacks_Q_OBJECT.contains(context) ) {
qWarning( "%s:%d: Class '%s' lacks Q_OBJECT macro",
(const char *) yyFileName, yyLineNo,
(const char *) context );
lacks_Q_OBJECT.remove( context );
} else {
needs_Q_OBJECT.insert( context, 0 );
}
}
}
break;
case Tok_translate:
utf8 = FALSE;
yyTok = getToken();
if ( match(Tok_LeftParen) &&
matchString(&context) &&
match(Tok_Comma) &&
matchString(&text) ) {
com = "";
//.........这里部分代码省略.........
示例14: getToken
//.........这里部分代码省略.........
while ( isxdigit(yyCh) ) {
hex += (char) yyCh;
yyCh = getChar();
}
sscanf( hex, "%x", &n );
if ( yyStringLen < sizeof(yyString) - 1 )
yyString[yyStringLen++] = (char) n;
} else if ( yyCh >= '0' && yyCh < '8' ) {
QCString oct = "";
do {
oct += (char) yyCh;
yyCh = getChar();
} while ( yyCh >= '0' && yyCh < '8' );
sscanf( oct, "%o", &n );
if ( yyStringLen < sizeof(yyString) - 1 )
yyString[yyStringLen++] = (char) n;
} else {
const char *p = strchr( tab, yyCh );
if ( yyStringLen < sizeof(yyString) - 1 )
yyString[yyStringLen++] = ( p == 0 ) ?
(char) yyCh : backTab[p - tab];
yyCh = getChar();
}
} else {
if ( yyStringLen < sizeof(yyString) - 1 )
yyString[yyStringLen++] = (char) yyCh;
yyCh = getChar();
}
}
yyString[yyStringLen] = '\0';
if ( yyCh != '"' )
qWarning( "%s:%d: Unterminated C++ string",
(const char *) yyFileName, yyLineNo );
if ( yyCh == EOF ) {
return Tok_Eof;
} else {
yyCh = getChar();
return Tok_String;
}
break;
case '-':
yyCh = getChar();
if ( yyCh == '>' ) {
yyCh = getChar();
return Tok_Arrow;
}
break;
case ':':
yyCh = getChar();
if ( yyCh == ':' ) {
yyCh = getChar();
return Tok_Gulbrandsen;
}
return Tok_Colon;
case '\'':
yyCh = getChar();
if ( yyCh == '\\' )
yyCh = getChar();
do {
yyCh = getChar();
} while ( yyCh != EOF && yyCh != '\'' );
yyCh = getChar();
示例15: qWarning
/*!
* Sets the list of subtypes for this service.
*
* \sa serviceSubTypes
* \sa addServiceSubType
* \sa removeServiceSubType
* \sa hasServiceSubType
*/
void QxtDiscoverableService::setServiceSubTypes(const QStringList& subtypes)
{
if(state() != Unknown)
qWarning() << "QxtDiscoverableService: Setting service subtypes while not in Unknown state has no effect";
qxt_d().serviceSubTypes = subtypes;
}